0

私は REST アプリケーションを開発しましたが、私のアプリケーションのケースの 1 つは次のとおりです。

ユーザーはサーバー側で操作を行います。サーバーは正常にデータを受け入れますが、データベースとの通信などでエラーが発生します。エラーコードを付けて返したくない 成功コードを付けて送りたいが、エラーを示すボディがある。500、404 などのエラー コードを送信したいのですが、設計は正しいですか? また、どのステータス コードを返す必要がありますか?

4

4 に答える 4

1

この場合、ある種の 5xx エラーが最も適切です。

ある種の内部サーバー エラーの場合は 500、または

503 サービス利用不可

HTTP/1.1 のすべてのエラー コードについては、こちらを参照してください http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html

必要に応じて、残りのサービスのエラー コードを常に返す必要があります。成功コードを返すのに、応答にエラーを入れることは正しいことではありません。

于 2011-11-17T22:29:53.583 に答える
0

サーバーの操作が、ユーザーの介入なしに (たとえば、何らかのバックグラウンドの「クリーンアップ プロセス」を使用して) そのような DB 障害から回復できる場合、成功ステータス コードは OK である可能性があります。それ以外の場合は、サーバー側のエラー ステータス コード (5xx) を返す方が理にかなっています。

于 2011-11-17T22:32:32.613 に答える
0

それが役立つかもしれません:http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html - いくつかの場所であいまいになる可能性がありますが、全体的に読みやすいIMOです。

于 2011-11-17T22:32:48.440 に答える
0

rfc2616でステータス定義を確認できます

以前は残りのアプリケーションを実装していましたが、常にステータスコードとエラーに関する詳細情報を含むメッセージを返しました。

そして、ええ、データベースの問題については 503 (サービスを利用できません)

この種のトピックについては、stackoverflowで多くの質問があります ...

于 2011-11-17T22:37:25.033 に答える