为什么选择REST?
- (Scalability)可扩展性好
- (Generality)通用性: 基于http这种广泛使用的协议
- (Independence)独立性
- Latency(Caching): 通过缓存减少延迟
- Security(安全):通过http使用特定的header 增加安全性
- Encapsulation(封装):隐藏实现细节,只暴露必要的接口
为什么使用JSON?
- (Ubiquity)使用范围广,几乎所有语言可以使用JSON
- (Simplicity)简单
- (Readability)可读性好
- (Scalability)可扩展性好
- (Flexibility) 灵活性好
重要概念1:HATEOAS
英文为:Hypermedia As the Engine Of Application State
意思为:超媒体作为应用程序状态的驱动。
通俗点说就是:用户通过server返回的内容(或者状态)获得关于其他资源的链接(链接),就像html一样,通过网页上的链接可以跳转的想要的网页。(不懂的话没关系,看后边例子就明白了)
基础知识:
概念:Resources
1. 资源在这里代表名字(rooms, students)
2. 设计API粒度要大 (一个例子就是在Java中,我们经常看到,一个方法的参数可以达到5个,甚至更多,这样的粒度太小.不方便也后扩展。如果需要增加一个参数,只个方法就只能添加一个