本文へスキップ

HALとは?

はる

HAL(Hypertext Application Language)とは、REST APIレスポンスハイパーリンク情報を埋め込むためのデータフォーマット仕様です。

HAL(Hypertext Application Language)は、REST APIレスポンスに関連リソースへのリンク情報を含めるための軽量なフォーマット仕様です。JSONまたはXMLで表現され、APIクライアントがレスポンスからナビゲーション先を動的に発見できるようにするHATEOAS(Hypermedia as the Engine of Application State)の考え方を実装するための標準的な手段の一つです。

HALレスポンスは主に2つの特別なプロパティで構成されます。「_links」プロパティにはリソースへのリンク(URLや関係性を示すrelなど)が含まれ、「_embedded」プロパティには関連リソースのデータが埋め込まれます。これにより、クライアントはAPIドキュメントを参照せずともレスポンスを辿るだけで関連リソースにアクセスできます。

HALの主な利点は次のとおりです。

  • APIのエントリポイントさえ知れば、リンクを辿って全リソースにアクセスできる
  • URLをハードコードせずに済むため、APIの変更に対してクライアントが柔軟に対応できる
  • JSON・XMLどちらでも表現可能で、既存APIへの追加が比較的容易

一方でHALは仕様がシンプルな反面、エラー表現やページネーション方法は標準化されておらず、より高機能なJSON:APIやHydraといった仕様と比較されることもあります。RESTful APIの設計や実装を学ぶ際に参照される重要な標準規格の一つです。

使い方・例文

REST APIが商品一覧を返す際、各商品オブジェクトに「_links」として詳細ページや関連カテゴリへのURLを含めることで、クライアントが次に取得すべきリソースのURLを動的に把握できます。

この用語をシェア

𝕏 でポスト LINE

最終更新:

関連用語