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

最佳答案

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。

10-05 23:29