Restful HTTP API を設計していますが、設計上の質問があります。
私のアプリケーションでは、ユーザーはアイテムの作成を提案できるはずです。
その後、私はそれらを承認または不承認にすることができます。
これに最適な VERB+URL パターンは何でしょうか。
例 1:
POST|GET|PUT|DELETE /items
ユーザーが新しいアイテムを投稿すると、「保留中」から「承認済み」にするか、削除することができます。
ここでは、GET /items?status=approved を使用してすべての承認済みアイテムを取得し、GET /items?status=pending を使用して保留中のすべてのアイテムを取得する必要があります。おそらく GET /items は、デフォルトで承認済みのものをすべて取得するでしょう。
しかし、ユーザーがそれを承認済みの状態にするのを防ぐ方法がわかりません。
また
例 2:
POST|GET|PUT|DELETE /item_creation_suggestions
ユーザーが新しいアイテムの提案を POST し、DELETE:ting して承認して POST /items を実行するか、単に DELETE することができます。
ここで /items と /item_creation_suggestions は 2 つの別個のコレクションです。提案を削除して、承認時にアイテムを作成するだけです。
これにより、アプリを不正アクセスから簡単に保護できます。/item_creation_suggestions は誰でも使用できますが、許可を得て自分の /items を保護することはできます。
しかし、これは非常に安らかではないようですか?
ユーザーがアイテムの更新と削除を提案し、私がそれらを承認または非承認する場合も同様です。
私は Restful デザインの初心者なので、すべてのフィードバックと提案を歓迎します!