Gibt es eine Möglichkeit Web Api Standardverhalten für Fehlermeldungen zu ändern, wie zum Beispiel:asp.net Web Api - Standard-Fehlermeldungen
GET /trips/abc
Reagiert mit (paraphrasiert):
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 Ich möchte vermeiden, diese ziemlich detaillierten Informationen über meinen Code herauszugeben, und ersetze sie stattdessen durch etwas wie:
könnte ich das im UserController machen, aber die Codeausführung geht noch nicht einmal so weit.
edit:
ich einen Weg zur Beseitigung detaillierte Fehlermeldungen aus dem Ausgang gefunden haben, in Global.asax.cs diese Codezeile verwenden:
GlobalConfiguration.Configuration.IncludeErrorDetailPolicy =
IncludeErrorDetailPolicy.LocalOnly;
Dieses wie diese eine Nachricht erzeugt :
{
"Message": "The request is invalid."
}
, die besser, aber nicht genau das, was ich will - Wir haben eine Reihe von numerischen Fehlercodes angegeben, die detaillierten Fehlermeldungen clientseitige abgebildet werden. Ich möchte nur dann ausgegeben, den entsprechenden Fehlercode (das ich in der Lage bin zu Ausgang vor zu wählen, vorzugsweise durch Sehen, welche Art von Ausnahme aufgetreten), zum Beispiel:
{ error: true, error_code: 51 }
Perfect, Thanks! – doque
Falls Sie sich fragen, wo Sie es hinzufügen können, können Sie es hinzufügen, indem Sie 'config.MessageHandlers.Add (new YourDelegatingHandler())' üblicherweise in der 'Register (HttpConfiguration config)' Methode in Ihrer Startlogik aufrufen. –
Anstatt den Antwortinhalt nach der Erstellung zu ersetzen, sollten wir nicht eher die Klasse/den Dienst anpassen, der für die Erstellung dieser Antwort verantwortlich ist? – dgaspar