0

このすべてのRESTのものにはかなり新しい。

APIを設計していますが、検索クエリから何を返すのかわかりません。クエリ全体に一致するすべてのオブジェクトを返すだけだと思っていましたが、 HATEOASについて少し読んだ後、代わりにURIのリストを返す必要があると思いますか?

これはアイテムのキャッシュに役立つことがわかりますが、実際のオブジェクト情報を取得するために必要な後続の複数のHTTPリクエストによって多くのオーバーヘッドが発生するのではないかと心配しています。

私は誤解していますか?代わりにオブジェクトインスタンスまたはURIを返すことは許容されますか?

4

2 に答える 2

3

リソースの詳細へのリンクを含むリソースのリストを返します。

RESTFull Web ServicesCookbook2010から-SubbuAllamaraju

クエリの応答をコレクションリソースの表現として設計します。適切な有効期限キャッシュヘッダーを設定します。クエリがどのリソースとも一致しない場合は、空のコレクションを返します。

于 2012-08-30T19:15:49.783 に答える
2

私見では、「純粋なREST」と「現実世界のREST」はまったく異なる2つの獣であることを常に覚えておくことが重要です。

そもそもクエリからURIのリストをどのように返していますか?たとえばを返す場合、これは確かに、コンテンツをどのように解釈することになっているのapplication/jsonをクライアントに伝えません。したがって、相互作用は、HATEOASと競合する帯域外情報(クライアントは、必要なデータを探す場所を魔法のようにすでに知っています)によってすでに推進されています。

したがって、あなたの質問に答えるには、URIの代わりにオブジェクトインスタンスを返すことは非常に許容できると思いますが、一般的な場合、これは、クライアントがそれを使用するかどうかさえ知らずに、このすべてのデータを生成することを意味するため、注意してください。そのため、ハイブリッドアプローチが頻繁に見られます。オブジェクトインスタンスは完全なオブジェクトではありません(つまり、サーバーが持っている情報の一部は返されません)が、クライアントがの完全な表現をフェッチできるようにする一意の識別子が含まれています選択した場合は、オブジェクトを選択します。

于 2012-08-30T19:14:32.007 に答える