回答:
PUT / posts / 323223 / votes
投票は、私がそれを試すリソースと見なすことができます。投稿(/ posts / 323223)は別のリソースなので、私は何もしません。次に、追加のメソッドが必要になり、複雑になります。
私はPUT
あなたの投票またはDELETE
それを主張します。あなたは実際にフォーラムの投稿を編集しないので、POST
不適切です。
これは主に、実際のターゲットオブジェクトと見なすものに依存します。
ターゲットオブジェクトがvoteの場合、実際にはターゲットオブジェクト(内部の投票カウンター)の状態を変更しているため、システムに投票をPOSTする必要があります。
これにもかかわらず、フォーラムの投稿が操作のターゲットオブジェクトであると考える可能性がはるかに高く、この場合、変更/編集を行わないため、PUT / DELETE操作セットはRESTのフィロソフィーとより整合性が高い可能性があります。フォーラム投稿。トークンをカウンターに置く/削除するだけです。それで、私はベイン・フェローマンの提案を支持します。
投票がべき等演算であるべきであるという事実は、この方向にあなたを導くべきもう一つの手がかりです。これは、「forumPost」クラス/オブジェクトの「vote」メンバー変数に対するADD / REMOVE操作と考えてください。
実際のターゲットオブジェクトがフォーラムの投稿なのか投票なのかを判断する方法については、コードを確認する必要があると思います。このHTTPリクエストを受け取って処理する「オブジェクト」(JSPページ+ Javaコントローラ+いくつかのJavaエンティティがDBテーブルを参照する)は、フォーラムの投稿または投票を表していますか?