0

私はこの電子ブックを読み、ベース URL を 2 つに制限するようにしてくださいと読みました。したがって、クイズのリソースがあれば、 と が/quizesあり/quizes/{id}ます。次に、アクションに HTTP 動詞を使用します。しかし、このパターンに従おうとすると、ランダムな質問で動的に作成されるクイズをサーバーから取得するにはどうすればよいでしょうか?

と思い/quizes?type=randomますが、type 属性をオプションのデフォルトでランダムにし、/quizes保存されたすべてのクイズを一覧表示するために既にパスを使用しているとします。

パスの作成/quizes/generate?type=randomはアドバイスに従っていません。生成という用語は動詞であるため、適合するとは思いません。

/quizesまた、コレクションを返すための「予約済み」などのパスはありますか (REST は仕様ではないことはわかっています)、または/quizesクイズ サーバー側を生成して返すために使用することは完全に合法ですか?

http://apigee.com/about/content/web-api-design

4

1 に答える 1

1

すべき/quizzesことは、さまざまなクイズにアクセスできるようにする URL のリストを提供することです。そのため、返されるメディア タイプが次のように JSON であることを定義したとしましょう/quizzes(おそらく のような特定のタイプapplication/json+quiz):

{ 
    quizzes = [
        { description: "Quiz 1", url: "/quizzes/1" },
        { description: "Quiz 2", url: "/quizzes/2" }
    ]
}

したがって、次のようなランダムなクイズにアクセスできるエントリを作成できます。

{ 
    quizzes = [
        { description: "Quiz 1", url: "/quizzes/1" },
        { description: "Quiz 2", url: "/quizzes/2" },
        { description: "Random", url: "/quizzes/random" },
    ]
}

1 つの REST エンドポイントがあり、後続のすべての URL はセマンティック メディア タイプを通じて検出されるという考え方です。Randomそのため、ランダム クイズを提供する説明付きのエントリがあることをメディア タイプが指定している場合、エンドポイント コンシューマはそれを使用できます。

于 2013-04-09T18:02:47.353 に答える