HAL和HATEOAS的关系和区别
Posted
技术标签:
【中文标题】HAL和HATEOAS的关系和区别【英文标题】:Relationship and difference between HAL and HATEOAS 【发布时间】:2014-11-07 07:02:21 【问题描述】:HATEOAS(超媒体作为应用程序状态的引擎)和HAL(超文本应用程序语言)似乎相关但并不完全相同。 HATEOAS和HAL有什么关系和区别?
【问题讨论】:
【参考方案1】:HATEOAS 是一个应用架构的概念。它定义了应用程序客户端与服务器交互的方式,通过导航它们在服务器返回的资源模型中找到的超媒体链接。
要实现 HATEOAS,您需要一些标准的资源表示方式,其中将包含超媒体信息(相关资源的链接),例如,如下所示:
"links":
"self": "href": "http://api.com/items" ,
"item": [
"href": "http://api.com/items/1" ,
"href": "http://api.com/items/2"
]
,
"data": [
"itemName": "a" ,
"itemName": "b"
]
HAL 就是这样的标准之一。它是一种特定的资源表示格式,可用于实现 HATEOAS。
如果您更喜欢遵循其他标准或使用自己的标准,您可以完全实现 HATEOAS,而无需遵循 HAL。
【讨论】:
除了 HAL,您还了解哪些标准? 有collection+json 和至少一个couple 的others 还有collection+JSON、JSON-LD,还有link headers的使用。以上是关于HAL和HATEOAS的关系和区别的主要内容,如果未能解决你的问题,请参考以下文章
Spring HATEOAS 与 Spring Data Rest