[〜#〜] 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はそのような標準の1つです。これは、HATEOASの実装に使用できるリソース表示の特定の形式です。
別の標準に従うか、独自の標準を使用する場合は、HALをまったく使用せずにHATEOASを完全に実装できます。