《玩转Spring全家桶》第55-62节
第55节 简单定制RestTemplate
RestTemplate支持的HTTP库
通用接口:
- ClientHttpRequestFactory
默认实现 - SimpleClientHttpRequestFactory
Apache HttpComponents - HttpComponentsClientHttpRequestFactory
Netty - Netty4ClientHttpRequestFactory
OkHttp - OkHttp3ClientHttpRequestFactory
第56节通过WebClient访问Web资源
WebClient
- 一个以Reactive方式处理HTTP请求的非阻塞式的客户端
支持的底层HTTP - Reactor Netty-ReactorClientHttpConnector
- Jetty ReactiveStream HttpClient-JettyClientHttpConnector
用的比较多的还是Netty的库。
创建WebClient - get()/ post()/ put()/ delete()/ patch()
第57节 小结
第58-59节 设计好的Restful Web Service
REST提供了一组架构约束,当作为一个整体来应用时,强调组件交互的可伸缩性、接口的通用性、组件的独立部署、以及用来减少交互延迟、增强安全性、封装遗留系统的中间组件。 ——Roy Thomas Fielding
第60节什么是HEATEOAS?
什么是HATEOSA?
Richardson成熟度模型:
- Level 3-Hypermedia Controls
HATEOAS - Hybermedia As The Engine Of Application State
- REST统一接口的必要组成部分
与传统的SOA中的WSDL的对比:
HATEOAS - 表述中的超链接会提供服务所需的各种REST接口信息
- 无需事先约定如何访问服务
传统的服务契约 - 必须事先约定服务的地址与格式
第61-62节使用Spring Data REST实现简单的超媒体服务
认识HAL
- Hypertext Application Language
- HAL是一种简单的格式,为API中的资源提供一致的链接
HAL模型 - 链接
- 内嵌资源
- 状态
HATEOAS客户端,通过编程的方式来访问服务和资源。 - 对Jackson JSON增强,配置Jackson JSON,注册HAL主持
操作超链接:
- 找到需要的Link
- 访问超链接