Vibe Tutorial
PRD 与文档驱动开发

3.4 API与HTTP基础

Tip

理解HTTP协议和API的基本概念,学会用正确的方式指挥AI写联网功能。


1. 为什么要学这个?

当你问AI怎么联网获取数据时,它会甩给你一堆词:"GET请求、POST请求、Header、Status 200、JSON Body..."

如果你不懂这些,你就没法指挥AI写联网功能。你可能会写出"用浏览器去数据库里拿数据"这种让AI死机的指令。

想象你在餐厅点餐。

  • 错误方式:冲进厨房大喊"我要吃的!",厨师一脸懵逼。
  • 正确方式:填张点餐单,写清楚"3号桌,宫保鸡丁,少辣",服务员拿给厨房,厨房做好后端出来。

关键问题:

  • HTTP协议是什么?
  • GET、POST、PUT、DELETE分别是什么?
  • 状态码200、404、500是什么意思?
  • JSON是什么格式?

HTTP就是互联网的点餐规则。


2. 核心概念

2.1 HTTP - 超文本传输协议

技术定义:HTTP(HyperText Transfer Protocol)是客户端和服务器之间通信的协议,定义了请求和响应的格式。

就像点餐单的格式。

  • 作用:规定怎么点餐(Request)和怎么上菜(Response)
  • 组成:URL(地址)、Method(动作)、Headers(备注)、Body(内容)

2.2 Request - 请求

技术定义:Request是客户端发给服务器的消息,包含要执行的操作和相关数据。

就像点餐单。

POST /api/login HTTP/1.1
Host: example.com
Content-Type: application/json
Authorization: Bearer token123

{
  "email": "user@example.com",
  "password": "123456"
}

四要素:

  1. URL:去哪个窗口?(/api/login)
  2. Method:干什么?(POST)
  3. Headers:附加信息(权限、格式)
  4. Body:具体内容(登录信息)

2.3 HTTP Methods - 请求方法

方法 作用 类比
GET 获取数据 看菜单
POST 创建数据 点新菜
PUT/PATCH 修改数据 改菜
DELETE 删除数据 退菜

2.4 Response - 响应

技术定义:Response是服务器返回给客户端的消息,包含状态码和数据。

就像上菜回执。

HTTP/1.1 200 OK
Content-Type: application/json

{
  "token": "abc123",
  "user": {
    "id": 1,
    "name": "Vibe"
  }
}

2.5 Status Code - 状态码

状态码 含义 类比
200 OK 成功 上菜了
400 Bad Request 客户端参数错误 你点的是啥?没这菜
401 Unauthorized 未授权 你没付钱/没登录
404 Not Found 找不到资源 厨师跑路了
500 Internal Server Error 服务器内部错误 厨房炸了

3. JSON数据格式

技术定义:JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,也易于机器解析和生成。

就像标准化的菜单。

{
  "menu": "Kung Pao Chicken",
  "price": 20,
  "isSpicy": true,
  "tags": ["chicken", "peanuts"]
}

为什么用JSON?

  • 最轻量,比XML简洁
  • 有结构,比纯文本清晰
  • AI最爱,能精确理解每个字段

4. 怎么指挥AI写API?

❌ 普通指令:

"帮我写个登录接口"

✅ Vibe指令:

帮我写一个Next.js的API Route:
- Path: /api/login
- Method: POST
- Request Body: { email, password }
- Response (200): { token: "abc...", user: { id: 1, name: "Vibe" } }
- Response (401): { error: "密码错误" }

你定义得越清楚(URL、Method、JSON),AI写出的代码就越少Bug。


5. 避坑指南

❌ 不要这样做 ✅ 应该这样做 为什么
全用GET请求 查=GET,增=POST,改=PUT,删=DELETE 语义化,符合HTTP规范
状态码全回200 错了就回4xx或5xx 让前端知道出错了
把Token放URL里 放Header里(Authorization: Bearer ...) 避免泄露到浏览器历史记录
不写API文档 写清楚每个接口的参数和返回值 方便团队协作和AI理解

6. 真实案例

Story

2010年,Stripe用7行代码颠覆支付行业

2010年以前,网站接入信用卡支付需要填几百页银行表格,等几周审核,然后接入复杂的SOAP XML协议。爱尔兰Collison兄弟创建了Stripe,只给开发者提供7行代码:发一个简单的POST /charge请求,带上金额和卡号,支付就成功了。全世界开发者疯了,所有新创公司(Uber、Airbnb、Lyft)都首选Stripe。如今Stripe估值650亿美元(曾达950亿)。

Vibe心法:设计API时遵循HTTP规范——用对Method(GET/POST/PUT/DELETE),用对状态码(200/400/500),用JSON格式。


7. 本章小结

  1. 📝 HTTP是点餐规则:Request(点单)→Response(上菜)
  2. 🔧 四种Method:GET(查)、POST(增)、PUT(改)、DELETE(删)
  3. 📊 状态码:200成功、400客户端错、404找不到、500服务器错
  4. 📄 JSON是通用语:轻量、有结构、AI友好
  5. 🎯 指挥AI:写清楚URL、Method、Request Body、Response格式