RESTful API 设计
网络应用程序,分为前端和后端两个部分。前端设备层出不穷(手机、平板、桌面电脑、其他专用设备......)。
因此,必须有一种统一的机制,方便不同的前端设备与后端进行通信。这导致API构架的流。
RESTfulRESTful API是目前比较成熟的一套互联网应用程序的API设计理论。一下是我理解的。
1. 任何的程序设计,都会有迭代升级,所以就出现了问题一:版本号问题
应该将API的版本号放入URL
https://api.example.com/v1/
Github采用这种做法
https://developer.github.com/v3/media/#request-specific-version
2. 资源命名
在RESTful架构中,每个网址代表一种资源(resource),所有网址中不能有动词,只能有名词,</br>
而数据库中的名词往往与数据库中的表对应,一般来说,数据库中的表都是统种记录的‘集合’,</br>
所以API中名词也用应该用复数
- https://api.example.com/v1/zoos
- https://api.example.com/v1/animals
- https://api.example.com/v1/employees
3. 请求方式
一般我们使用的最多的请求方式就是get和post,既然我们遵守了RESTful那么我们最好也可以,</br>
在请求方式上也统一下。
常用的HTTP动词有五个,对应sql中命令
- GET(SELECT):从服务器取出资源(一项或多项)。
- POST(CREATE):在服务器新建一个资源。
- PUT(UPDATE):在服务器更新资源(客户端提供改变后的完整资源)。
- PATCH(UPDATE):在服务器更新资源(客户端提供改变的属性)。
- DELETE(DELETE):从服务器删除资源。
4.例子
- GET /zoos:列出所有动物园
- POST /zoos:新建一个动物园
- GET /zoos/ID:获取某个指定动物园的信息
- PUT /zoos/ID:更新某个指定动物园的信息(提供该动物园的全部信息)
- PATCH /zoos/ID:更新某个指定动物园的信息(提供该动物园的部分信息)
- DELETE /zoos/ID:删除某个动物园
- GET /zoos/ID/animals:列出某个指定动物园的所有动物
- DELETE /zoos/ID/animals/ID:删除某个指定动物园的指定动物
网友评论