2012-02-04 10 views
15

JSON Webサービスでエラー応答を送信する際のベストプラクティスは何ですか?私はそれがいくつかのやり方をしているのを見て、合意した基準やベストプラクティスが選択肢の中にあるかどうかを知りたいと思っていました。JSON Webサービスでエラー応答を送信するためのベストプラクティスは何ですか?

回答には、成功または失敗の表示、返されるデータ、適切なエラーメッセージなどが含まれています。

[{'success':true, 'data':{...}] 
[{'success':false, 'data':{'message':'error'}] 

しかし、私はまた、JSONオブジェクトは、データのみを含む実施例を見てきた、そしてサービスは(403、404、500、など)、問題を示すために、通常のHTTPエラーコードを使用します。 (これがTwitter APIのやり方です)

これを行うには「正しい」方法がありますか、それともスタイルの問題ですか?後者の方法はもっと「RESTful」ですか?

答えて

17

"RESTful"アプローチでは、プライマリエラー応答は適切なステータスコード(4xx/5xx)で示されます。

お客様のメッセージには、エラーからの回復方法に関する追加のアプリケーション固有のヒントが記載されています。これは、発生したエラーの人間が読める表現、または何らかのより技術的なインジケータ(すなわち、例外クラス名を提供する)を含むことができる。

汎用であるため、エラーメッセージの修正構文を維持してください。これにより、クライアントを壊すことなく新しいエラーメッセージを導入することができます。

+4

この目的のために、私は今日これを見つけました:http://tools.ietf.org/html/draft-pbryan-http-json-resource-01 –

3

適切なHTTPコードを使用して、今すぐ「データ」と呼んでいるものをレスポンスの本文として入れます。これは、APIユーザーにエラーを認識させるための唯一の正しいRESTfulな方法です。

これを行うだけでAPIがRESTfulになるわけではありませんが、APIを作成しないと、必ず RESTfulになります。

よく使用されるエラーのHTTPステータスコードの例は、Dropbox API referenceにあり、各メソッドの「エラー」セクションを見て、どのエラーコードを期待するべきか、その特定の意味方法。

関連する問題