エラーメッセージ用のWeb APIはデフォルトの動作を変更する方法はあります、例えば:(言い換え)とasp.netウェブAPI - デフォルトのエラーメッセージ
GET /trips/abc
に応答します。
HTTP 500 Bad Request
{
"Message": "The request is invalid.",
"MessageDetail": "The parameters dictionary contains a null entry for parameter 'tripId' of non-nullable type 'System.Guid' for method 'System.Net.Http.HttpResponseMessage GetTrip(System.Guid)' in 'Controllers.TripController'. An optional parameter must be a reference type, a nullable type, or be declared as an optional parameter."
}
Iこのコードではなく、コードに関する情報を分かりやすく説明し、代わりに次のように置き換えてください。
HTTP 500 Bad Request
{
error: true,
error_message: "invalid parameter"
}
私はUserControllerの内部でこれを行うことができますが、コードの実行はそれほど遠くには行きません。
編集:私はGlobal.asax.csにこのコード行を使用して、出力から詳細なエラーメッセージを削除する方法を見つけた
:これは、このようなメッセージを生成
GlobalConfiguration.Configuration.IncludeErrorDetailPolicy =
IncludeErrorDetailPolicy.LocalOnly;
:
優れている{
"Message": "The request is invalid."
}
、しかしではない正確に何をしたい - 私たちは、詳細なエラーメッセージをクライアント側にマッピングされている数値のエラー・コードの数を指定しました。
{ error: true, error_code: 51 }
パーフェクト、おかげ
ただ、追加の明確化のための彼女のコードにいくつかのビットに欲しかったです! – doque
追加する場所が不明な場合は、 'config.MessageHandlers.Add(new YourDelegatingHandler())'を呼び出すことで追加できます。通常は、起動ロジックの 'Register(HttpConfiguration config)'メソッドにあります。 –
レスポンスコンテンツをビルドした後に置き換えるのではなく、最初にレスポンスを構築するクラス/サービスをカスタマイズするべきではないでしょうか? – dgaspar