Restful是种架构风格
Representational State Transfer :表现层状态转化
-
设计
- 每一个URI代表一种资源
- 客户端和服务器之间,传递这种资源的某种表现层
- 客户端通过四个HTTP动词,对服务器端资源进行操作,实现"表现层状态转化"
- GET(SELECT):从服务器取出资源(一项或多项)
- POST(CREATE):在服务器新建一个资源
- PUT(UPDATE):在服务器更新资源(客户端提供改变后的完整资源)
- DELETE(DELETE):从服务器删除资源
- (补充:PATCH(UPDATE):在服务器更新资源(客户端提供改变的属性))
-
思想
设计一个系统的时候,资源是第一位的考虑,应首先从资源的角度进行系统的拆分、设计,而不是像以往一样以操作为角度来进行设计
-
分析
- 操作之间是会有关联,你的设计容易变成“第2个操作要求第1个操作进行过”,这种关系多起来你的系统就乱了
- 而各个资源虽然可能有关联,但依旧是能够简单地切掉这些关联导致相互独立的,所以不会有非常乱的耦合性
- 对资源的操作就这么几种,所以很容易设计一致的URL
- 对资源的读操作是无副作用的,所以能玩缓存
举例
- 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
- 删除某个指定动物园的指定动物
不会也有人以为是这样的吧hhh