Einführung
Bei der Rückgabe von Fehlern an Clients in ASP. NET-Web-API stehen Entwickler häufig vor dem Dilemma, für jeden aufgetretenen Fehler sofort HttpResponseExceptions auszulösen oder Fehler anzusammeln, bevor sie gesendet werden zurück. In diesem Artikel werden die Vor- und Nachteile jedes Ansatzes untersucht und Einblicke in die empfohlene Best Practice gegeben.
Sofortige Fehlerreaktion
Der Ansatz der sofortigen Fehlerreaktion beinhaltet das Auslösen einer HttpResponseException mit bei jedem Fehler den entsprechenden Statuscode tritt auf:
public void Post(Customer customer) { if (string.IsNullOrEmpty(customer.Name)) { throw new HttpResponseException("Customer Name cannot be empty", HttpStatusCode.BadRequest) } if (customer.Accounts.Count == 0) { throw new HttpResponseException("Customer does not have any account", HttpStatusCode.BadRequest) } }
Vorteile:
Nachteile:
Kumulierter Fehler Antwort
Der akkumulierte Fehlerreaktionsansatz beinhaltet das Sammeln aller Fehler in einer Liste oder Sammlung, bevor eine HttpResponseException ausgelöst wird:
public void Post(Customer customer) { List<string> errors = new List<string>(); if (string.IsNullOrEmpty(customer.Name)) { errors.Add("Customer Name cannot be empty"); } if (customer.Accounts.Count == 0) { errors.Add("Customer does not have any account"); } var responseMessage = new HttpResponseMessage<List<string>>(errors, HttpStatusCode.BadRequest); throw new HttpResponseException(responseMessage); }
Vorteile:
Nachteile:
Best Practice
Die beste Vorgehensweise für den Umgang mit Fehlern in der ASP.NET-Web-API hängt vom spezifischen Szenario und den Vorlieben des Entwicklers ab. Es wird jedoch im Allgemeinen empfohlen, bei einfachen und leicht identifizierbaren Fehlern den Ansatz der sofortigen Fehlerreaktion zu verwenden. Dieser Ansatz liefert dem Kunden umgehend Feedback und vereinfacht die Fehlerbehandlungslogik.
In Situationen, in denen ein umfassenderer Fehlerbericht erforderlich ist und die potenzielle Anzahl von Fehlern begrenzt ist, kann der Ansatz der akkumulierten Fehlerreaktion eine sein bessere Wahl. Es bietet eine einzige, detaillierte Antwort, die alle notwendigen Informationen enthält, damit der Kunde das Problem beheben kann.
Aktualisierungen
Dieses Thema wurde auch in mehreren Blogbeiträgen behandelt und Artikel, einschließlich:
Das obige ist der detaillierte Inhalt vonWie behandelt man Fehler in der ASP.NET-Web-API am besten: sofortige oder akkumulierte Antworten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!