1. ホーム
  2. rest

[解決済み] HALとHATEOASの関係・違いについて

2023-07-20 17:57:04

質問

ハテオア (Hypermedia as the Engine of Application State) と HAL (Hypertext Application Language)は、関係があるようで、全く同じではありません。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を実装するために使用できる、リソースのプレゼンテーションの特定の形式です。

他の規格に従うか、独自の規格を使用したい場合は、HALに全く従わずにHATEOASを完全に実装することができます。