文章目录
HATEOAS (Hypermedia as the Engine of Application State)
hateoas links 超媒体即应用状态引擎,是一种rest最高级使用标准
-
wiki百科
https://en.wikipedia.org/wiki/HATEOAS -
microsoft定义
https://docs.microsoft.com/en-us/azure/architecture/best-practices/api-design#use-hateoas-to-enable-navigation-to-related-resources -
SpringBoot HATEOAS 用法简介
https://www.cnblogs.com/mzq123/p/11747845.html
- 主要功能:提供一种前后端交互方式,不再依赖api文档
在返回结果中提供链接,连向其他API方法。客户端通过链接就能知道服务端提供哪些api
大白话就是:在输出资源的时候,把资源相关的资源操作和对应的链接也带上!
最理想的情况是构造成资源网络一样,根据这些额外的信息,可以实现资源发现。
- REST 成熟度模型:将REST划作了由低到高四个等级
- 第一个层次(Level 0)的 Web 服务只是使用 HTTP 作为传输方式
【实际上只是远程方法调用(RPC)的一种具体形式。SOAP 和 XML-RPC 都属于此类。】 - 第二个层次(Level 1)的 Web 服务引入了资源的概念。每个资源有对应的标识符和表达。
- 第三个层次(Level 2)的 Web 服务使用不同的 HTTP 方法来进行不同的操作,并且使用 HTTP 状态码来表示不同的结果。
【如 GET 方法来获取资源,POST创建资源,PUT更新资源,DELETE 方法来删除资源。】 - 第四个层次(Level 3)的 Web 服务使用 HATEOAS。在资源的表达中包含了链接信息。客户端可以根据链接来发现可以执行的动作。
- 第一个层次(Level 0)的 Web 服务只是使用 HTTP 作为传输方式
HAL(Hypertext Application Language)
- 官网
https://stateless.group/hal_specification.html
HAL 是资源表示的特定格式,可用于实现 HATEOAS
- HAL 模型包括:
- 链接
- 内嵌资源
- 状态
HAL Browser
- 项目添加依赖
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-rest-hal-browser</artifactId>
</dependency>
用浏览器打开 ip:port/api
可以查看美化后的HAL风格数据
Spring HATEOAS
- https://docs.spring.io/spring-hateoas/docs/1.0.1.RELEASE/reference/html/
提供了一些 API 来简化在使用 Spring 尤其是 Spring MVC 时创建遵循HATEOAS原则的 REST 表示
Spring Data Rest
Spring Data Rest 是基于 Spring Data repositories,分析实体之间的关系。为我们生成Hypermedia API(HATEOAS)风格的Http Restful API接口。