0

好奇心から、JSON を返す API でサーバー側の例外 (および対応する詳細) を返すための一般的な標準はありますか? 例外は、コード内でキャッチされなかった例外や、開発者によって配置されたスローされた例外など、あらゆるものである可能性があります。

現在、 Wiki の定義に従って HTTP ステータス コードを設定しています。

私の JSON 応答は次のようになります。

HTTP Code: 401

{'error': 'Authentication required.', 'message': 'You must be authenticated to perform that action.'}
4

4 に答える 4

1

ネイティブ ECMAScript エラー オブジェクトの標準構造は次のとおりです。

{
    name: ...,
    message: ...
}

ここで、「name」はエラーのタイプです (「Error」、「SyntaxError」などの対応するコンストラクターの名前)。あなたの例では、たとえば「AuthentificationError」という名前を使用できます。

于 2012-08-05T16:57:02.347 に答える
1

JSON-RPC (http://en.wikipedia.org/wiki/JSON-RPC) を参照してください。

成功した場合、応答は次のようになります。

{
    "result": ...(returned data)...
    ...
}

エラーの場合、応答は次のようになります。

{
    "error": ...(error details)...
    ...
}

エラーが発生した場合、「エラー」プロパティが存在する必要があり、「結果」プロパティが返されてはなりません。エラーが発生しなかった場合、"error" プロパティを設定しないでください。このようにして、ヘッダー (応答コードなど) をチェックする必要なく、応答の内容のみに基づいてエラーと成功した応答を区別できます。

于 2012-08-05T17:12:19.450 に答える
0

はい、同じことができます。WebサーバーではHTTPエラーのカスタムエラーページ

を作成できることがわかっているので、これらのカスタムエラーページではJSON応答を提供する必要があります

例:
WEB-INF/web.xmlに以下を追加します。

<error-page>  
       <error-code>401</error-code>  
         <location>/autherror.jsp</location>  
</error-page>

autherror.jspファイルで、必要なJSON応答を実行するために必要なロジックをコーディングします。

于 2012-08-05T16:53:04.853 に答える