Restful API
1. 是什么
简单来说就是用一系列约束来设计服务器端的接口,使我们通过接口就能大概知道该接口的功能。
REST 是一组架构约束。
REST 约束包括:客户-服务器,无状态,缓存,统一接口,分层系统,按需代码。如果一个架构符合 REST 原则,就称它为 RESTful 架构。
2.资源
资源是对一组实体的概念的映射,不是实体本身。也可以简单理解为实体的别名。
一个资源具有一个或多个标识,这里的标识指统一资源标识符URI
例如URL(统一资源定位符):
https://www.sample.com/api/shops/10086 - 编号10086店铺的基本信息
https://www.sample.com/api/users/9527/orders - 编号9527用户的所有订单信息
- 资源集合:
/zoos //所有动物园
/zoos/1/animals //id为1的动物园中的所有动物
12
- 单个资源:
/zoos/1 //id为1的动物园
/zoos/1;2;3 //id为1,2,3的动物园
3. 使用标准的 HTTP 方法
RESTful API 使用标准的 HTTP 协议实现前后端的接口调用。对涉及到的资源,常用的操作就是增、删、改、查,类似对数据库记录的CRUD(Create,Read,Update,Delete)。使用的 HTTP 方法规则如下:
- GET 查询 :GET /users/{userId}
- POST 增加:POST /users
- PUT 全量修改 :PUT /users/{userId} 即提供该用户的所有信息来修改
- PATCH部分修改:PATCH /users/{userId} 只提供需要的修改的信息
- DELETE删除 :DELETE /users/{userId}
- HEAD 方法用于得到描述目标资源的元数据信息。
- OPTIONS 请求用来确定对某个资源必须具有怎样的约束。
4. 安全性和幂等性
在讨论 RESTful API 接口设计时,会提到两个基本的特性:“安全性”和“幂等性”。
**安全性是指调用接口不对资源产生修改。**可理解为只读(GET)
幂等性是指调用方法1次或N次对资源产生的影响结果都是相同的。
需要特别注意的是:这里幂等性指的是对资源产生的影响结果,而不是调用HTTP方法的返回结果。