什么是RESTful
REST,即Representational State Transfer的缩写。(表现层的状态转换)。表现层就是资源的表现形式。资源可以是图片、html、txt、网络上可获取的对象,URI代表资源。
如果一个架构符合REST原则,就称它为RESTful架构。
RESTful的设计误区
URI中包含动词
协议
HTTPs
域名
· 将API放在主域名下
https://example.com/api/
版本:
· 将API的版本号放入URL,Github就是这样做的:
https://example.com/api/v1/
路径(Endpoint)
路径即终端,表示API的具体网址。在RESTful架构中,每个网址代表一种资源,因此网址中不应该有动词,只能有名词,而且所用的名词往往和数据库的表格名对应。一般来说,数据库中的表都是同类型记录的集合,所以API中的名词也应该使用复数。
http://example.com/api/v1/things
HTTP动词
对资源的操作类型,用HTTP动词表示。常见的HTTP动词有5个:
1. GET - 对应SELECT,从服务器取出一个或多个资源
2. POST -对应CREATE,在服务器新建一个资源
3. PUT -对应UPDATE,在服务器更新资源(客户端提供改变后的完整资源)
4. PATCH -对应UPDATE,在服务器更新资源(客户端提供改变的属性)
5. DELETE -对应DELETE,在服务器删除资源
例如:
1. GET /zoos:列出所有动物园
2. POST /zoos:新建一个动物园
3. GET /zoos/ID:获取某个指定动物园的信息
4. PUT /zoos/ID:更新某个指定动物园的信息(提供该动物园的全部信息)
5. PATCH /zoos/ID:更新某个指定动物园的信息(提供该动物园的部分信息)
6. DELETE /zoos/ID:删除某个动物园
7. GET /zoos/ID/animals:列出某个指定动物园的所有动物
8. DELETE /zoos/ID/animals/ID:删除某个指定动物园的指定动物