REST架构分析
简易理解
是什么?
一种API的设计规范,推荐但不强制;
1. 通过URL就知道要什么
2. 通过http动作就知道要干什么
3. 通过http响应码就知道结果怎么样
为什么用REST?
REST的优势
- 统一接口:提高交互的可见性;
- 无状态:每次请求都需要资源的全部信息,提高了可见性,可靠性和扩展性;
- C/S架构:客户端-服务器分离
- 数据可缓存: ??
- 分层架构:
统一接口
URL/URI定位资源,CURD动作由HTTP动作指定
C = PUT
U = POST
R = GET
D = DELTE
禁止: get /api/deleteUser?userId = 10 类似的API访问
改正: DELETE /api/userId
无状态
用户的连续请求之间的状态不保存,即server不会接受“获取下一页内容”这样的请求,必须指定要返回的页码,server不会保存你上次读取的位置。
有状态的请求,可读性,扩展性都很差,例如server接受”读取下一页”这样的请求:
GET /book/page =100; (1)
GET /book/nextpage; (2)
(1)请求中很容易知道读取的页码,(2)中无从得知读取的页码
怎么设计符合REST风格的API?