2

REST スタイルに従って Web サービスを作成しているので、JAX-RS を使用しています。ただし、質問はより一般的な形式であるため、テクノロジーは重要ではありません。

システムに 3 つのリソースがあるとします。クイズ、質問、質問フィードバック。ここで、Quiz リソースのパスを作成するとします。/quiz

1 つのクイズ オブジェクトには質問のリストがあり、各質問にはフィードバックのリストがあります。

また、質問へのパスもあります。質問のサブリソース (正しい用語ですか?) についてフィードバックする/questionsこともできます。POST/question/1/feedback

ただし、このパスもクイズで利用できるようにする必要がありますか? これに関する規則はありますか、それとも開発者次第ですか (もちろんそうですが、それは通常のことですか)?

例: /quiz/questions/1/feedback. 私が尋ねようとしているのは、境界がどこに行くのかということです。「トップレベル」パスの場合と同じように、ネストされたパスで同じ操作を使用できるようにする必要がありますか?

4

1 に答える 1

4

Web サービスの実装では、合成と集約のルールを利用しています。基本的な前提は、複合化されたリソースのライフサイクルが親リソースによって完全に管理されることです。集約されたものは関連付けの観点からのみ管理されますが、

そのため、親リソースが与えられた場合、(通常) HTTP 動詞をサブ リソースの管理操作に次のようにマップします。

           構成       集計
POST 作成アソシエイト
GET 読み取り 読み取り
PUT アップデート 再関連付け
DELETE 削除 関連付けを解除

複合 GET の場合、サブ リソースを完全にクエリするのに十分なエンド ポイントを定義します。集約された GET の場合、完全なクエリを実行する実際のエンドポイントを定義するのに十分な情報のみを返します。

クイズ API をコーディングする場合、次のようになります。

  • /クイズ/質問/1
  • /質問/1
  • /質問/1/フィードバック

だがしかし:

  • /quiz/questions/1/フィードバック
于 2012-11-13T08:28:57.577 に答える