跳转到内容

RESTful API

核心思想: 用 URL 定位资源,用 HTTP 方法描述操作。

  • 资源:网络上的一个实体(如用户、文章),用 名词 表示。
  • 端点:操作资源的 URL 地址。
  • 无状态:每次请求都包含处理该请求所需的全部信息。
操作传统描述RESTful 风格
查询所有用户getUsers()GET /users
查询 ID 为 1 的用户getUser(1)GET /users/1
创建新用户createUser(...)POST /users
更新用户 1updateUser(1, ...)PUT /users/1
删除用户 1deleteUser(1)DELETE /users/1

定义了对资源要执行的操作。

方法描述是否幂等是否有请求体
GET检索/获取资源通常无
POST创建新资源
PUT更新整个资源(全部替换)
PATCH部分更新资源
DELETE删除资源通常无

幂等性:多次执行相同的操作,结果都一样。


服务器对请求状态的响应。

码段类别常见状态码描述
1xx信息响应100 Continue请求已收到,请继续
2xx成功200 OK成功
201 Created 创建成功
204 No Content 成功但无返回内容
3xx重定向301 Moved Permanently资源已永久移动
4xx客户端错误400 Bad Request 请求错误
401 Unauthorized 未认证
403 Forbidden 无权限
404 Not Found 资源不存在
5xx服务器错误500 Internal Server Error 服务器内部错误
502 Bad Gateway 网关错误

HTTP 请求和响应的元数据。

常见请求头:

Content-Type: application/json // 请求体的格式
Authorization: Bearer <token> // 身份验证令牌
Accept: application/json // 希望接收的响应格式
User-Agent: ... // 客户端信息

常见响应头:

Content-Type: application/json // 响应体的格式
Status: 200 OK // 状态码和描述
Set-Cookie: ... // 设置 Cookie

客户端发送给服务器的数据格式。

格式Content-Type示例(创建用户)
JSONapplication/json{"name": "John", "age": 30}
Form Datamultipart/form-data(用于文件上传和表单)
URL Encodedapplication/x-www-form-urlencodedname=John&age=30