REST规范的Web API,通常被称为RESTful API,是一种遵循REST(Representational State Transfer,表述性状态转移)架构风格设计的Web API接口规范。它通过HTTP协议提供访问和操作资源的能力。REST并不是一个标准,而是一组设计原则和约定。一个被称为RESTful的API,通常满足以下特点:
资源(Resource)导向 一切对外提供的对象都被视为资源,通过URI(统一资源标识符)唯一标识。例如:
GET /users/123 # 表示访问ID为123的用户资源
使用标准HTTP方法 不同的HTTP方法对应不同的操作语义:
GET:查询资源POST:创建资源PUT:更新资源(整体替换)PATCH:部分更新资源DELETE:删除资源无状态(Stateless) 每个请求都应包含完成该请求所需的全部信息,服务器不保存客户端的状态(如Session等)。客户端状态必须由客户端维护。
统一接口(Uniform Interface) 所有的API接口形式应一致。客户端通过URI定位资源,通过HTTP动词操作资源,响应通常使用标准的数据格式(如JSON)。
表现层与资源的分离 客户端与服务器通过资源的表述(Representation)进行交互,而非资源本身。表述通常是JSON或XML格式。
可通过超媒体驱动(HATEOAS) 返回数据中包含可操作的链接(如“下一页”,“删除”操作等),指导客户端进一步操作。(但很多实际项目不严格要求这一点)
| 操作 | HTTP方法 | URL | 说明 |
|---|---|---|---|
| 获取用户列表 | GET | /users | 返回用户集合 |
| 创建新用户 | POST | /users | 创建新用户 |
| 获取单个用户 | GET | /users/{id} | 查询指定用户 |
| 更新整个用户信息 | PUT | /users/{id} | 更新指定用户 |
| 更新部分信息 | PATCH | /users/{id} | 部分更新 |
| 删除用户 | DELETE | /users/{id} | 删除指定用户 |