0

ユーザー、質問、回答を「名詞」として使用して RESTful API を設計していますが、ユーザーの質問に対する未読の回答 (の数) を取得するのにどの URL が最も適切かわかりません。

たとえば、現在のユーザー (ID: 42) が 4 つの質問をし、最後のログイン以降、それらの質問のいずれかに 2 つの回答が与えられたとします。

この数字 2 を取得するのに適切な URL は何でしょうか? 私はこれらについて考えました(ただし、これらの例では、文言よりも範囲の方が適切です)

  • /users/42/questions?feature=unread_anwers
  • /answers?unread_by=42&question_owner=42(これは私にはかなり不安に思えます)
  • /answers?since=<%USER:last_login%>&question_owner=42
  • /users/42(そして、ユーザー オブジェクトのプロパティとして unread_answers を持っています)
  • /users/42/questions/answers?status=unread(これは /noun/id/noun-Pattern を壊します)
  • /users/42/questions/all/answers?status=unread(より「正しい」パターンに向かっていますが、それでも間違っているようです)
  • 他に適切な URL はありますか?

私はまだ躊躇していますが、現在、最初の提案に傾いています。この問題に関するベスト プラクティス リソースは見つかりませんでした。このケースを設計する正しい方法があるかどうかを知りたいです。

ご意見やご指摘をお待ちしております。

編集: 私の同僚が提案した...

  • /users/42/unread_answers(疑似名詞を追加しますが、これはすべきではないと思います)
  • /users/42/answers?status=unread(/users/42/answers は実際にはユーザー 42 によって与えられた回答を返す必要があるため、階層を壊します)
4

1 に答える 1

1

これは正しいオプションです:

/users/42/questions/all/answers/unread 

各層は、単一​​のリソースまたはリソースのセットを表します。REST の主な目標は、すべての URL をリソースの一意の識別子にすることです。クエリ パラメータを入力し始めるとすぐに、この目標が破られてしまいRPCますHTTP。詳細については、「REST ではなく RPC です」を参照してください。

于 2013-09-03T00:53:55.160 に答える