3

私はRESTアーキテクチャスタイルに従ってWebサービスを構築しています。JAX-RSを使用して簡単にしています。ただし、この質問はテクノロジーに関するものではなく、リソースへのパスの正しい使用に関するものです。

クイズ、質問、QuestionFeedbackなどのリソースをアプリケーションに作成しました。

次のようなパスを作成しました

/quiz /question/1

等々。/approvedここで、またはなどのパスを公開するWebサービスAPIをいくつか見てき/questions/approvedました。パスの承認された部分は、質問が持つ可能性のある属性のように見えます(この場合)。これは問題ないのでしょうか。また、境界は、リクエストパラメーターにすることと、このようなパスの一部との間のどこにあるのでしょうか。

そして、この場合のように、システム内の目的のリソースの1つを何らかの方法で公開するが、通常のパスに加えてのQuestionようなパスを介して、Webサービスでパスを公開しても問題ありませんか?ルールは何ですか、そしてこれはどのようになっているのですか?/approved/questions

質問する人がいなかったら、/questions?type=approvedGETのようなパスを作成したでしょう。

承認されたのは私のシステムのリソースではないからです。または、リソースを公開するパスを作成しても問題ありませんが、リソース名を直接使用しないでください。

4

1 に答える 1

2

追加情報でしか理解できないパスがOKかどうかを尋ねています。まあ、それらは間違っていませんが、私はそれらを選択しません。

あなたの質問は(私の言葉で):

承認されるという追加機能を持つすべての質問を教えてください。

これは 2 つのステップに要約されます。

最初の一歩

すべての質問を取得します。

GET /questions

第二段階

これらのうち、承認されたもののみを取得します。

GET /questions?approved=true

これはとても自然なことです。

対照的に、なぜ 2 番目のステップの結果が/approved? これはどのように関連してい/questionsますか? この質問に答える明確な方法はありません。/pink-elephants技術的には、「承認されたすべての質問を教えてください」のような変なパスを使用しても問題ありませんが、お勧めしません。

于 2012-11-13T15:04:01.710 に答える