文章目录

  • HATEOAS (Hypermedia as the Engine of Application State)
    • HAL(Hypertext Application Language)
      • HAL Browser
  • Spring HATEOAS
  • Spring Data Rest

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

HATEOAS HAL相关推荐

  1. 使用 Spring HATEOAS 开发 REST 服务--转

    原文地址:https://www.ibm.com/developerworks/cn/java/j-lo-SpringHATEOAS/index.html?ca=drs-&utm_source ...

  2. HATEOAS 约束

    HATEOAS 约束 HATEOAS(Hypermedia as the engine of application state)是 REST 架构风格中最复杂的约束,也是构建成熟 REST 服务的核 ...

  3. 使用 Spring HATEOAS 开发 REST 服务

    使用 Spring HATEOAS 开发 REST 服务 Comments 1 绝大多数开发人员对于 REST 这个词都并不陌生.自从 2000 年 Roy Fielding 在其博士论文中创造出来这 ...

  4. REST-HATEOAS

    一般我们开发的REST服务都是基于REST-1或者REST-2的服务(REST成熟度模型,0-3级),但是这种方法有一种弊端就是耦合度比较高,后端更改了接口链接,前端也必须同步更改. 绝大多数开发人员 ...

  5. HATEOAS REST Service

    用户通过点击页面的href的链接地址,而跳转到其他网页,实现浏览网页的过程了. -> 让调用REST的api就可以实现,类似于用户浏览网页的从一个页面跳转到另外一个页面的过程了 -> 而这 ...

  6. 架构之:REST和HATEOAS

    文章目录 简介 HATEOAS简介 HATEOAS的格式 HATEOAS的Spring支持 总结 简介 我们知道REST是一种架构方式,它只是指定了六种需要遵循的基本原则,但是它指定的原则都比较宽泛, ...

  7. HATEOAS的RESTful服务。 记录超媒体API

    1.简介 希望本教程的前一部分不仅揭示了超媒体和HATEOAS的深远影响,而且使我们确信这些都是RESTful Web服务和API的基本构建块. 在这一部分中,我们将继续侧重于文档方面,以解决如何预先 ...

  8. HATEOAS的RESTful服务。 超媒体:REST的秘密要素

    在这篇文章中,我们将介绍有关HATEOAS的RESTful服务的综合文章. 超媒体是REST的秘密成分. 1.简介 在本教程的前一部分中,我们花了一些时间来刷新有关REST体系结构样式的基本原理的知识 ...

  9. spring hateoas初体验

    前一段时间学习工作流偶然接触到了hateoas,感觉比较有意思,虽然用的不是那么多,但是加强了自己对restful的理解. hateoas简介 HATEOAS是Hypertext As The Eng ...

最新文章

  1. nefu 1029 字符串
  2. 2012-12-21
  3. centos8中一键安装Nginx
  4. Java项目之家庭记账软件
  5. beautifulsoup 搜索第二个标签_自定义网站搜索教程
  6. LeetCode(783)——二叉搜索树结点最小距离(JavaScript)
  7. 2021-2025年中国超本地服务行业市场供需与战略研究报告
  8. JSPatch源码解读
  9. 农民伯伯 谈 接口 [interface]
  10. python ant_python3.7.1ant+TKinter在Tkin中显示来自ANT+设备的实时数据
  11. graphpad细胞增殖曲线_Graphpad 作图教程 | 这份超详细的生存曲线绘制指南,科研新手一看就会!...
  12. linux系统进入管理员命令行,电脑如何进入管理员命令提示符
  13. 专注世界排名的Alexa.com宣布关站
  14. 分段式多级离心泵_分段式多级离心泵的组装与调整
  15. PostgreSQL multixact日志管理器说明
  16. 08 量子力学教材推荐,量子力学书单:量子力学、高等量子力学、量子统计、量子信息、路径积分...(适合物理专业本科生、研究生、物理爱好者)
  17. C 统计数字和大写字母和小写字母的个数
  18. 13. 线性动态电路的复频域分析
  19. Elasticsearch基础整理 脑图
  20. 拍照怎么测量尺寸?这些方法可以了解一下

热门文章

  1. SLAM总结(一)- SLAM原理概述与简介
  2. Nginx的安装和应用(详细介绍)
  3. PHP调用外部程序的方法解析
  4. MySQL-学习数据库必备的基础知识
  5. Asp.Net Core WebApi 身份验证、注册、用户管理
  6. 锁定计算机后如何不黑屏,怎么设置电脑黑屏时间_怎么设置电脑不黑屏
  7. JAVA高并发程序设计(葛一鸣著)读书笔记
  8. EXCEL校验身份证号码和银行卡号
  9. Keras Tuner自动调参工具使用入门教程
  10. dbunit测试dao_使用DbUnit和Anthill控制您的测试环境