Rest API
Representational State Transfer
REST API ( RESTful API ) 是一种基于 HTTP 协议的 API 设计规范
使用了一系列 HTTP 请求方法来实现对资源的增删改查操作
请求方式
Methods
常见请求方式 | 说明 |
---|---|
GET | 用于获取资源的数据 |
POST | 用于向提交数据,创建新资源 |
PATCH | 用于更新资源的部分数据 |
PUT | 用于更新资源的全部数据 |
DELETE | 用于删除置顶资源 |
HEAD | 用于获取响应头但不获取资源的数据 ( 获取元数据或检查资源是否存在 ) |
OPTIONS | 用于检查资源支持哪些 HTTP 的请求方法 |
如下:使用 CURL 发送不同的请求
zsh
% curl -X GET https://www.example.com/api/students
% curl -X GET https://www.example.com/api/students/123
% curl -X POST https://www.example.com/api/students
% curl -X PATCH https://www.example.com/api/students/123
% curl -X PUT https://www.example.com/api/students/123
% curl -X DELETE https://www.example.com/api/students/123
状态码
Status Codes
状态码是指 HTTP 响应中的一个数字,表示请求的处理结果
状态码 | 说明 |
---|---|
1xx | 表示请求已被接收,需要继续处理 |
2xx | 表示请求已被成功处理 |
3xx | 表示需要进一步操作才能完成请求 |
4xx | 表示客户端错误,即请求包含错误的语法或无法完成请求 |
5xx | 表示服务器错误,即服务器在处理请求时发生错误 |
常见
1xx
类状态码
状态码 | 说明 |
---|---|
100 | 继续 |
101 | 切换协议 |
102 | 处理中 |
103 | 提前提示 |
常见
2xx
类状态码
状态码 | 说明 | 状态码 | 说明 | 状态码 | 说明 |
---|---|---|---|---|---|
200 | 成功 | 204 | 无内容 | 208 | 已经报告 |
201 | 已创建 | 205 | 重置内容 | 226 | 已使用 |
202 | 已接受 | 206 | 部分内容 | ||
203 | 非权威信息 | 207 | 多状态 |
常见
3xx
类状态码
状态码 | 说明 | 状态码 | 说明 |
---|---|---|---|
300 | 多种选择 | 305 | 使用代理 |
301 | 永久重定向 允许请求方法 POST 自动变为 GET | 306 | 已保留 |
302 | 临时重定向 允许请求方法 POST 自动变为 GET | 307 | 临时重定向 不允许方法改变 |
303 | 其他查看 | 308 | 永久重定向 不允许方法改变 |
304 | 未修改 |
常见
4xx
类状态码
状态码 | 说明 | 状态码 | 说明 | 状态码 | 说明 |
---|---|---|---|---|---|
400 | 错误请求 | 411 | 请求未包含Content-Length | 424 | 失败的依赖 |
401 | 未授权 | 412 | 前提条件未满足 | 425 | 太早 |
402 | 需要付款 | 413 | 请求实体过大 | 426 | 需要升级 |
403 | 禁止访问 | 414 | 请求 URI 过长 | 427 | 需要代理认证 |
404 | 未找到 | 415 | 不支持的媒体类型 | 428 | 需要前提条件 |
405 | 方法不允许 | 416 | 请求范围不符合要求 | 429 | 请求过多 |
406 | 不可接受 | 417 | 期望失败 | 431 | 请求头字段过大 |
407 | 需要代理 | 418 | 我是一个茶壶 ( 恶搞彩蛋 ) | 451 | 法律原因不可用 |
408 | 请求超时 | 421 | 请求错误 | ||
409 | 冲突 | 422 | 无法处理的实体 | ||
410 | 已消失 | 423 | 锁定 |
常见
5xx
类状态码
状态码 | 说明 |
---|---|
500 | 服务器内部错误 |
501 | 未实现 |
502 | 坏网关 |
503 | 服务不可用 |
504 | 网关超时 |
505 | HTTP 版本不支持 |