REST、ハイパーメディア、HATEOAS

あなたは「REST」という言葉を使いつづけている。あなたが考えている意味とは違うと思う。

— マイク・アムンゼン、REST fest 2012 基調講演

まず最初に、免責事項。「Django REST framework」という名前は2011年初頭に決定され、開発者が見つけやすいようにするために選ばれました。ドキュメント全体を通して、私たちはよりシンプルで技術的に正しい「Web API」という用語を使用するように努めています。

ハイパーメディアAPIの設計に真剣に取り組んでいる場合は、このドキュメント以外の資料を参照して、設計の選択肢を検討する必要があります。

以下は「必読書」に分類されます。

より徹底的な背景については、クラブニックのハイパーメディアAPI読書リストをご覧ください。

REST frameworkを用いたハイパーメディアAPIの構築

REST frameworkは、不可知論的なWeb APIツールキットです。適切に接続されたAPIの構築を支援し、適切なメディアタイプの設計を容易にしますが、特定の設計スタイルを厳密に強制するものではありません。

REST frameworkが提供するもの

REST frameworkがハイパーメディアAPIの構築を可能にすることは自明です。それが提供するブラウザブルAPIは、Webのハイパーメディア言語であるHTML上に構築されています。

REST frameworkには、適切なメディアタイプの構築を容易にするシリアライゼーションパーサー/レンダラーコンポーネント、適切に接続されたシステムを構築するためのハイパーリンクリレーションコンテンツネゴシエーションの優れたサポートも含まれています。

REST frameworkが提供しないもの

REST frameworkが行わないことは、HALCollection+JSONJSON API、HTML マイクロフォーマットなどの機械可読なハイパーメディアフォーマットをデフォルトで提供すること、あるいはハイパーメディアベースのフォーム記述と意味的にラベル付けされたハイパーリンクを含む完全なHATEOASスタイルのAPIを自動的に作成する機能を提供することです。そうすることは、API設計について、実際にはフレームワークの範囲外にとどまるべき、独断的な選択をすることを伴います。