賛成投票に適したHTTPメソッドは何ですか?


8

RESTfulな観点から、(StackExchangeのような)フォーラム投稿を賛成するアクションに最も適切なHTTPメソッドは何ですか?

投票の場合はPOSTを、投票を取り消す場合はDELETEと言いますが、ユーザーはメッセージごとに1つの票を投じることしかできないため、投票はべき演算と見なすことができるため、PUTも可能です。

回答:


6

PUT / posts / 323223 / votes

投票は、私がそれを試すリソースと見なすことができます。投稿(/ posts / 323223)は別のリソースなので、私は何もしません。次に、追加のメソッドが必要になり、複雑になります。


7

私はPUTあなたの投票またはDELETEそれを主張します。あなたは実際にフォーラムの投稿を編集しないので、POST不適切です。


1

これは主に、実際のターゲットオブジェクトと見なすものに依存します。

ターゲットオブジェクトがvoteの場合、実際にはターゲットオブジェクト(内部の投票カウンター)の状態を変更しているため、システムに投票をPOSTする必要があります。

これにもかかわらず、フォーラムの投稿が操作のターゲットオブジェクトであると考える可能性がはるかに高く、この場合、変更/編集を行わないため、PUT / DELETE操作セットはRESTのフィロソフィーとより整合性が高い可能性があります。フォーラム投稿。トークンをカウンターに置く/削除するだけです。それで、私はベイン・フェローマンの提案を支持します。

投票がべき等演算であるべきであるという事実は、この方向にあなたを導くべきもう一つの手がかりです。これは、「forumPost」クラス/オブジェクトの「vote」メンバー変数に対するADD / REMOVE操作と考えてください。

実際のターゲットオブジェクトがフォーラムの投稿なのか投票なのかを判断する方法については、コードを確認する必要があると思います。このHTTPリクエストを受け取って処理する「オブジェクト」(JSPページ+ Javaコントローラ+いくつかのJavaエンティティがDBテーブルを参照する)は、フォーラムの投稿または投票を表していますか?

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.