15

API を介してエラーが発生した場合に送信する正しいステータス コードを探しています。

正確なシナリオは、商品をショッピング カートに追加できないことです。

失敗はさまざまな理由で発生する可能性がありますが、単一の http コードを返したいと考えています。

どれが一番いいでしょうか?

私はそれらを調べてきましたが、ここでのニーズに正確に適合するものは何も見当たりません.

考えられる障害条件には、次のようなものがあります。

Not enough stock to satisfy
Stock limit reached for that particular product
Product no longer available
4

1 に答える 1

19

サーバー エラーの場合は 500 にする必要があります。クライアント エラーの場合は 400 を使用します。

URI とそれを使って何をするかを確認しないと、これ以上正確に判断することは困難です。たとえば、「製品が利用できなくなりました」が GET 要求の結果である場合、404 (見つかりません) になるはずです。ただし、POST リクエストの場合は、200 または 202 である必要があります。

他の 2 つについては、エラーではない可能性があります。クライアントが正しいリクエストを送信したが、在庫が他の誰かによって消費された可能性があります。この場合、サーバーは 409 (conflict) を返す必要があります。リクエストが最初から在庫が多すぎる場合は、200/202 にする必要があります。

コードが 1 つだけ必要な場合は、400 と 200 を使用します (上記を参照)。

于 2013-06-05T16:26:05.777 に答える