POST
/ PUT
/リソースの HATEOAS リンクを表す最良の方法は何PATCH
ですか? これらの操作にはペイロードがありますが、HATEOAS リンクでペイロードを表すオプションはありません。これらは事前に決定されておらず、重い可能性があるためです。では、終点を指定して動作を指定するだけでよいのでしょうか。
HATEOAS // リンクを使用した JSON 応答のサンプルまたは例を大歓迎POST
しPUT
ますPATCH
。
POST
/ PUT
/リソースの HATEOAS リンクを表す最良の方法は何PATCH
ですか? これらの操作にはペイロードがありますが、HATEOAS リンクでペイロードを表すオプションはありません。これらは事前に決定されておらず、重い可能性があるためです。では、終点を指定して動作を指定するだけでよいのでしょうか。
HATEOAS // リンクを使用した JSON 応答のサンプルまたは例を大歓迎POST
しPUT
ますPATCH
。
リンクは、 と の 2 つの要素で構成されhref
ますrel
。にはhref
、リソースを見つけるための明示的な URL が含まれています。はrel
、現在のリソースとリンクのリソースの間の関係を識別します。を使用して、受け入れ可能な HTTP メソッドと、リンクのrel
使用方法を決定する必要があります。
以下は、 RESTful Web Services Cookbookセクション 5.4からの引用です。
リンク関係タイプは、リンクの役割または目的を伝えます。クライアントとサーバーがこれらのタイプの意味に同意すると、クライアントはリンクから URI を見つけて使用できるようになります。
たとえば、edit
は、、、の使用に関する詳細を含む明示的な詳細を持つ標準のリンク関係です。GET
PUT
POST
DELETE
リンク関係は拡張可能で、独自のものを追加できます。
これらの操作にはペイロードがありますが、HATEOAS リンクでペイロードを表すオプションはありません。
通常の答えは、表現に使用しているメディア タイプの説明で操作を文書化することです。
考慮すべき参照の 1 つは、Atom Syndication / Atom Pubです。基本的な考え方は、メディア タイプの指定によって、リンク関係の解釈を含め、ドキュメントの解釈方法がわかるというものです。
REST API は、リソースを表し、アプリケーションの状態を駆動するために使用されるメディア タイプの定義、または既存の標準メディア タイプの拡張リレーション名および/またはハイパーテキスト対応マークアップの定義に、その記述作業のほとんどすべてを費やす必要があります。メディア タイプの処理規則の範囲内で完全に定義する必要がある、対象の URI で使用するメソッドの記述に費やされた労力
原則として、PUT と PATCH は非常に単純です。これらはリモート オーサリング メソッドです。通常、PUT の request-body は、GET によって提供される表現を編集したものにすぎず、PATCH は、編集を記述する別の方法です (通常、Accept-Patchヘッダーで記述されたメディア タイプの 1 つを使用します)。
POST は難しいものです。POST セマンティクスの制約は非常に緩いため、多くの自由度があります。追加の制約をインラインで説明できない場合は、メディア タイプの定義にさらに頼る必要があります。