私は現在、JSON RESTful APIを設計しています。これには、/item/vote
などのブールエンドポイントが必要です。これはfalse
は、ユーザーが特定のアイテムに投票していないことを意味します。またはtrue
は、投票しました。
現在、複数の可能なデザインから1つを選択するのに苦労しています。
HTTPステータスコード
PUT/item/vote => trueに設定 DELETE/item/vote => falseに設定 GET/item/vote =>ステータスコード204 => true |ステータスコード404 => false
[〜#〜] json [〜#〜]
PUT/item/vote HTTP/1.1 Content-Type:application/json { "vote":true }
GET/item/vote HTTP/1.1 HTTP/1.1 200 OK Content-Type:application/json { "投票":true }
これらの2つのアプローチのいずれかが優れていますか、それとも単なる好みの問題ですか?すでに見たので、私は現在HTTPステータスコードアプローチを好みます。
2番目のアプローチは非常に望ましいです。 PUT
は、サーバー上のリソースをあなたがPUT
tingしているコンテンツで置き換えることを目的としています。同様に、DELETE
はリソースを削除するためのものであり、値を設定するためのものではありません。