REST API 基础概念
RESTful API 的核心概念:HTTP 方法、请求/响应结构、端点、状态码
生产方式:人写签发:晓黎学习复核:2026年9月19日被 6 个词条引用
什么是 REST API?
REST(Representational State Transfer)是一种设计风格,不是协议或标准。简单说就是:用 HTTP 协议的方式,让程序之间互相通信。
你每天都在用 REST API——刷朋友圈、查天气、叫外卖,背后都是 REST API 在工作。
核心概念
1. 客户端与服务器
┌─────────────┐ ┌─────────────┐
│ 你的 App │ ────→ │ 服务器 │
│ (客户端) │ ←──── │ (服务端) │
└─────────────┘ └─────────────┘
- 客户端:发起请求的一方(浏览器、手机 App、脚本)
- 服务器:接收请求并返回数据的一方
2. 端点(Endpoint)
端点就是服务器上的一个具体地址,用来执行某个特定操作。
https://api.example.com/v1/chat/completions
└──┬──┘ └─┬─┘ └──┬──────────┘
│ │ └─ 具体功能路径
│ └─ API 版本
└─ 域名
类比:端点就像餐厅里的菜单上的某一道菜。你不需要进厨房看厨师怎么做,只需要说出菜名(端点),服务员(API)就会把菜端给你。
3. HTTP 方法(动词)
最常见的四个方法:
| 方法 | 含义 | 类比 |
|---|---|---|
GET | 获取数据 | 去图书馆借书(不改变书架上的书) |
POST | 创建新数据 | 去邮局寄信(新增了一封信) |
PUT | 更新已有数据 | 去柜台改签(替换原有的票) |
DELETE | 删除数据 | 去银行销户(彻底删掉账户) |
AI API 主要用 POST——你每次跟 AI 对话都是一次「提问」,需要发送数据给服务器。
4. 请求结构
一个完整的 HTTP 请求 = 地址 + 方法 + 请求头 + 请求体
POST /v1/messages HTTP/1.1 ← 方法 + 路径
Host: api.anthropic.com ← 请求头:发给谁
Content-Type: application/json ← 请求头:数据格式
Authorization: Bearer sk-ant-... ← 请求头:身份验证
{
"model": "claude-sonnet-4-5", ← 请求体(JSON)
"messages": [...]
}
通俗比喻:你去餐厅吃饭
- 地址 = 餐厅地址
- 方法 = 你进店后说的第一句话("帮我点个菜")
- 请求头 = 你的身份信息(会员卡号)、口味偏好(要辣的)
- 请求体 = 你点的具体菜品(菜单内容)
5. 响应结构
服务器返回的数据也是结构化的:
HTTP/1.1 200 OK ← 状态码:成功了
Content-Type: application/json ← 响应头
{
"id": "msg_01A...",
"content": [...], ← 响应体(JSON):实际数据
"model": "claude-sonnet-4-5"
}
状态码速查:
| 状态码 | 含义 | 类比 |
|---|---|---|
200 | 成功 | ✅ 菜做好了,上菜 |
400 | 请求参数有问题 | ❌ 你点的菜菜单上没有 |
401 | 没登录/Token 过期 | ❌ 你忘了带会员卡 |
429 | 请求太频繁 | ❌ 你一分钟内下了十单,被系统限流了 |
500 | 服务器内部错误 | ❌ 厨房着火了,菜做不出来 |
6. JSON 格式
API 通信几乎都用 JSON(JavaScript Object Notation),是一种纯文本的数据格式。
{
"name": "张三",
"age": 25,
"skills": ["Python", "React"],
"contact": {
"email": "zhangsan@example.com",
"phone": "13800138000"
}
}
特点:
- 大括号
{}= 对象(类似字典/Map) - 中括号
[]= 数组(类似列表) - 双引号 = 字符串的标记
- 逗号 = 分隔不同字段
详细信息参见 JSON 数据结构基础
为什么 AI API 都用 REST?
- 简单:HTTP 协议被所有编程语言支持
- 灵活:JSON 格式易读易写,人类可读
- 生态成熟:有无数工具(Postman、curl、各类 SDK)帮你测试
- 标准化:只要懂 REST,就能接入任何兼容的服务
常见误区
| 误区 | 纠正 |
|---|---|
| REST = HTTP | ❌ REST 是设计风格,HTTP 是实现方式 |
| API 就是后端 | ❌ API 是前后端之间的契约/接口 |
| 用 GET 还是 POST 无所谓 | ❌ GET 应该只读,POST 才改变数据 |
| JSON 就是 JavaScript | ❌ JSON 是独立的数据格式,所有语言都能解析 |
实战检查清单
调用一个 AI API 时,你需要确认:
- 端点 URL 正确:
/v1/messages还是/v1/chat/completions - HTTP 方法正确:AI API 通常用 POST
- 请求头完整:特别是
Content-Type和Authorization - 请求体格式正确:字段名、嵌套结构是否符合文档
- 能正确解析响应:知道数据在哪个字段(如
content、choices[0].message)
互链
链接来自概念卡正文里的双链,编译时能解到本期词条集的才成为站内链接。
- JSON 数据结构基础正文引用
反链(6)
- API 认证基础正文引用
- HTTP 请求方法详解正文引用
- JSON 数据结构基础正文引用
- JSON Schema 基础正文引用
- MDN Web Docs相关概念
- SSE 流式输出原理正文引用
出现在哪些课时里(0)
判据与「课时正文里能不能点出来」是同一个:那一节确实提到了它。点课时走当前页跳转, 它是导航,不是词条链接。
还没有课时讲到这一条。它是词条跑在课程前面的那一部分,不是错链。
关联图
只画这一条与它直接相连的词条,边与上面两区同源。可拖拽、可缩放,点节点是新标签。
以列表方式看这 7 个节点
出处
路径是本地知识库(Obsidian 库)里的位置,正文与概念卡逐字对应。
- 概念卡原文REST API 基础概念
03_RESOURCES/概念/rest-api-基础概念.md - 所属知识地图栏目概念页索引 · API 与后端基础
03_RESOURCES/概念/Index.md
编译入库:2026年11月2日。词条由知识库编译而来, 修正要回到概念卡改,再重新编译。