HAL和HATEOAS之间的关系和区别

时间:2014-09-13 03:14:53

标签: rest compare hateoas

HATEOAS(超媒体作为应用程序状态的引擎)和HAL(超文本应用程序语言)似乎是相关的,但并不完全相同。 HATEOAS和HAL之间有什么关系和区别?

1 个答案:

答案 0 :(得分:68)

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。