2017-03-31 4 views
0

データベースのデータがリクエストを処理するには不十分な場合があります(アカウント番号などが必要です)。ユーザの要求に無効な構文が含まれている場合悪い既存データのRESTfulレスポンスコードですか?

することは、それがデータベースがダウンした、またはサービスが失敗した場合、それは私が「500、502、または503

だろう400 だろう422を検討しています。これは基本的には「要求は不正ではありませんでしたが、要求のセマンティクスによってエラーが発生しました」という意味です。ここでの問題は、リクエスト自体に固有のものではなく、既存のデータの状態にあることです。

答えて

1

詳細な動作はサーバーエラーです。したがって、4xx(クライアントエラーを表す)の代わりに5xx応答コードを使用する必要があります。 5xxファミリのどのレスポンスコードに今すぐアクセスできます。サーバーの動作を正しく定義する応答コードは存在しないようですが、500 Internal Server Errorが最も近いと思われます。 https://tools.ietf.org/html/rfc2616#section-10.5.1

これは、サービスとどのリソースで行っている操作によっても異なります。

0

私は422を使用する理由を理解し、それに同意することができます。
しかし、データなしで依頼を達成するための優雅な方法があるのだろうかと思いました。おそらく応答が行われますが、利用可能な機能などが低下します。 そうでなければ、必要なデータが利用可能になるまで、その機能が公開されないようにすることができますか?つまりその人はログインしており、例えば有効なセッションIDを持っています。

+0

ありません。 1つのテーブルにIDがなければ、他のサービスへのフォローアップコールは行えません。 –

+0

ああ、はい、500の応答が行く方法でしょう。 – cigloo

関連する問題