2012-11-19 11 views
6

コレクションのうちの1つが(UXの理由で)制限されている、安らかなサービスを提供しています。この場合、それは25の項目のキャップを有する。それを超えた場合は、リソースを削除してから追加する必要があります。限定コレクションのHTTPステータスコード?

POST http://somesite.com/api/v2/stuff 
{"cool":"stuff"} 

をとかで< 25のものがあります:例としてクライアントが送信した場合

200 OK 

場合のもので> 25物事:

??? 

DELETE http://somesite.com/api/v2/stuff/:id 

POST http://somesite.com/api/v2/stuff 
{"cool":"stuff"} 

200 OK 

最高のコードは何ですかこのため?ストレート400? 409コンフリクト? 429?どれもかなり右に見えるん..

+2

409(a)リソース状態の問題であり、(b)ユーザーが解決可能であるため、競合が正しいと思われます。 – Alohci

答えて

8

使用409 httpbis section 7.5.8から:。

「要求を完了できなかったため、リソースの現在の状態 との競合にこのコードは、状況どこで許可されています ユーザは競合を解決することができ、 は要求を再提出する必要があります。ペイロードには、ユーザが競合の原因を認識するのに十分な情報「 」が含まれている必要があります。あなたのケースでは

、リソースがhttp://somesite.com/api/v2/stuffで識別されるものであり、POST要求が原因(それはすでに限界に達しているということである)現在の状態との競合に完了することができません。あなたの応答では、既存のメンバーの1つを削除したり、上限を超えたり、他の何らかのアクションをとるための十分な情報(リンクが望ましい)をユーザーに与えます。その後、元の要求を再送信することができます。

+0

ええ、説明が合って、私はそれが一番良いかもしれないと思った。紛争はちょっと聞こえました。 – Scott

関連する問題