私は、人々が昼食のために行くべきレストランのようなグループ活動を決めるのに役立つ小さなツールを構築しています。私のオブジェクトはイベント、オプション、環境設定です。イベントにはいくつかのオプションがあり、ユーザはそのオプションを発明順に順位付けすることができます。したがって、ユーザーの投票は1:オプションB、2:オプションA、3:オプションCになる可能性があります。このマップはどのようにRESTfulインターフェイスにマップされますか?
これをRESTにマップする最良の方法は何ですか。私は混乱どこのオプションでのユーザー投票を行う方法です
(すべての場合には、認証されたユーザーが存在しなければならない)私は
GET /events/ : list of events
POST /events/ : create a new event
GET /events/1 : get event one
and on options with:
POST /events/1/options : add a new option to the event
で、イベントにCRUDをサポートしなければならないことは明らかと思われますイベント。 RESTに最も適していると思われるのは、/ events/1/options/1/voteへの各オプションのPUTを行うことですが、これは投票間で要件を強制するのが難しいようです1 B、2 A、3 Cのように一度にすべての投票を得た場合、私はこれを行うことができますが、ユーザーが1 C、2 B、3 A、アプリケーションはそれらの要求の間に無効な状態になります。
投票を1つのパッケージにして、/ events/1/votesにアクセスする必要がありますか?
(これは週末のプロジェクトの計画を過剰に見えるかもしれませんが、私は私が書くために支払わよコードでその豪華さを持っていないので、私の目的は、右のそれを行うことです。)
これらのURIは重要ではありません。これらのURIは、いくつかのエントリーポイントをフィールドとして使用して、クライアントがそれらを構築したり、その内容について何も知る必要はありません。 – aehlke