HATEOAS HAL

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划作了由低到高四个等级
    1. 第一个层次(Level 0)的 Web 服务只是使用 HTTP 作为传输方式
      【实际上只是远程方法调用(RPC)的一种具体形式。SOAP 和 XML-RPC 都属于此类。】
    2. 第二个层次(Level 1)的 Web 服务引入了资源的概念。每个资源有对应的标识符和表达。
    3. 第三个层次(Level 2)的 Web 服务使用不同的 HTTP 方法来进行不同的操作,并且使用 HTTP 状态码来表示不同的结果。
      【如 GET 方法来获取资源,POST创建资源,PUT更新资源,DELETE 方法来删除资源。】
    4. 第四个层次(Level 3)的 Web 服务使用 HATEOAS。在资源的表达中包含了链接信息。客户端可以根据链接来发现可以执行的动作。

HAL(Hypertext Application Language)

  • 官网
    https://stateless.group/hal_specification.html

HAL 是资源表示的特定格式,可用于实现 HATEOAS

  • HAL 模型包括:
    1. 链接
    2. 内嵌资源
    3. 状态

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接口。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值