2016-08-19 4 views
0

Web APIの1つで返されるJSON応答に、ビジネスで必須と見なされる最小限のフィールドセットが含まれていると期待しています。DBで見つかった不良データのHTTPレスポンスステータスコード

これは、契約を尊重しない悪いデータがデータベースにある場合に適していますか?HTTP status code

現時点では500を使用していますが、改善が必要な場合もあります(また、サービスの前にワニスを入れて500503 Service Unavailableに変換するため)。

例:

{ 
    "id": "123", 
    "message": "500 - Exception during request processing. Cause: subtitles is a required field of class Movie and cannot be empty", 
    "_links": { 
    "self": { 
     "href": "/products/movies/123" 
    } 
    } 
} 

おかげ

+0

私はそれが悪いデータならば、それは400の悪い要求でなければならないと思いますか? – mituw16

+0

これらのリンクをチェックすると、多分役立つかもしれません:http://stackoverflow.com/questions/1434315/http-status-code-for-database-is-down and http://stackoverflow.com/questions/3290182/rest-http -status-code-for-failed-validation-validation-or-invalid-duplicate – d3r1ck

+0

リクエストは正しいとは言えません。同じ予期しないデータがdbに見つかりましたので「悪い」という応答です。 –

答えて

0

500内部サーバーエラーは、問題は、サーバー側から、本質的であると正直に言うと、ここで十分のようですし、それからやって間違ったを反映するものではありません。クライアント側。

1

400はBADリクエストを意味しますが、リクエストには何も悪いことはないので、使用しないでください。

500は、予期せぬことが起こった場合のサーバーエラーを意味します。コードが破損し、銀河がクラッシュしました。悪いデータはそれの原因ではありません。

あなたには悪いデータがありますので、自由に使い分けることができます。

最初の質問は、悪いデータをどうしますか?

  1. この場合、リクエストは正常ですが返信するデータがないことを意味する204を返します。 404はエンドポイントが存在しないという意味でデータが存在しないため404を返さないでしょう。

  2. 誰かが修正している間に、メインのデータベースからtempデータに移動することができます。

どちらの方法でも、悪いデータを返さず、クライアントがそのデータが悪い理由を気にしません。すべてのクライアントは、データがあるかどうかに関係しています。 重要と思われるフィールドがデータに欠落していることをクライアントが気にする必要があるのはなぜですか?

もう1つアプローチして、データを返すことができます。

結論:悪いデータをどのように処理しているのかを判断し、クライアントに何らかの責任を負いません。

関連する問題