识别资源
设计uri并选择合适的http方法和返回码
- 合理的利用分隔符表述资源之间的层次关系
- 例如 : /user/{id}/
- 使用逗号或者分号表述非层次关系(实际应用很少用)
- 使用连接字符“-” “_” 改善长路径名称可读性
- 避免出现一些后缀名
- 使用& 区分参数
设计资源的表述
合适的 资源的力度
服务端 - 网络效率
- 表述资源的多少,是否需要多一次性传入
- 客户端易用性
客户端 - 可缓存性
- 可变性
- 修改频率
1
2
3
4
5
6
7
8动作 | 安全/幂等 | 用途
Get | Y/Y | 获取信息
post | N/N | 创建,更新,批量更新
delete | N/Y | 删除资源
put | N/Y | 更新资源或者完全替换资源
head | Y/Y | 同get 获取header 信息,但是没有响应体
options | Y/Y | 获取资源支持的http方法列表
trace | Y/Y | 让服务器返回其收到的http头
1 | 状态码 | 描述 | 状态码 | 描述 |
什么是HATEOAS?
hybermedia as the engine of applications state
rest 统一接口必要重要的组成部分
认识下HAL
hypertext application language 为api 提供简单一致的链接
模型:
- 链接
- 内嵌资源
- 状态
springboot-data-rest
@RepostoryRestResource
Resource
PagedResource