1

HATEOASパラダイムでは、REST応答のリンクは、アクションまたはリソースを意味しますか?タイプドロップダウンのある注文フォームがあります。一部の詳細オプションフィールドは、それらの選択に基づいてフォームに読み込まれます。

HATEOASパラダイムに従うと、クライアントは、これらの追加フィールドをどこからロードするかを知っている、または推測することを期待されるべきではありません。したがって、提供されたすべてのオプションに1つのリンクを含めました。リンクオブジェクトのrel属性は、リンクの意図に関するある種のドキュメントを提供することになっています。これは正しい実装ですか?

ネット上で利用できる人気のあるコーヒーショップの例(Ian Robinsonの講演とInfoQの記事)では、リンクを使用して次に利用可能な状態遷移を識別します。これらは精神的に同等ですか?

4

2 に答える 2

1

あなたの例が正しいか間違っているとは言いませんが、それは準拠したハイパーメディアリンクです。ハイパーメディアリンクにはさまざまな種類があり、最も適切なものを見つける必要があります。たとえば、リソースへのリンク関係をリンクされたリソースから分離することが理にかなっている場合があります。XMLを使用すると、次のことができます。

<link rel="type1SpecialOptions" href="http:/yourDomain/specialOptions/type1" />
<link rel="type2SpecialOptions" href="http:/yourDomain/specialOptions/type2" />

まだ有効なハイパーメディアリンクスタイルの代わりに:

<link specialOptions="http:/yourDomain/specialOptions/type1" />
<link specialOptions="http:/yourDomain/specialOptions/type2" />

アプリケーションに適したリンクタイプのタイプを選択してください。ハイパーメディアリンクに関するこの記事には、ハイパーメディアリンクの種類についての非常に簡単な説明があります。ハイパーメディアとRESTの用語に精通していることを前提としているため、最初に例を見てから、さまざまなリンクタイプのリンクをたどって、何が可能かをよりよく理解してください。

于 2012-06-18T15:40:04.130 に答える
0

あなたに開かれたいくつかの選択肢があります:

  1. リンクされたリソースでアクションを実行できることを示すカスタムrel値を定義します。これらをAPIドキュメントに文書化します。(できれば、自己文書化された参照解除可能なHTTP URIをrel値として使用してください!)
  2. メディアタイプのドキュメントで、ドキュメント階層内の特定のハイパーリンクが非GETリクエストを実行できるリソースを表し、他の場所のリンクがGETのみをサポートするリソースを表すことを定義します。あなたはここで好きなだけ具体的にすることができます。
  3. フォームを使用します。特定のメディアタイプ(XML、HTML)には、フォームの概念があります。フォームのアクションであるハイパーリンクは、明示的にアクションです。AJAXがない場合、ブラウザは現在POSTのみをサポートしていることに注意してください。
  4. ヘッダーOPTIONSを返すために使用し、実行可能なアクションに関する情報を提供します。Allow:この選択には2回目の往復が必要ですが、上記の3つのうちの1つ以上に加えてサポートすることができます。
于 2012-12-04T16:43:21.267 に答える