Best Practices für die Rückgabe von Fehlern in der ASP.NET-Web-API
Beim Umgang mit Fehlern in ASP.NET-Web-APIs gibt es zwei primäre Ansätze: Fehler sofort zurückgeben oder Fehler akkumulieren und kollektiv zurücksenden. In diesem Artikel werden die Vor- und Nachteile jedes Ansatzes untersucht und die empfohlene Best Practice bereitgestellt.
1. Fehler sofort zurückgeben
Beim ersten Ansatz werden Fehler sofort mithilfe von HttpResponseExceptions zurückgegeben. Dies ist geeignet, wenn:
Beispiel:
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); } }
2. Fehler akkumulieren und zurücksenden
Beim zweiten Ansatz werden Fehler akkumuliert und am Ende der Aktion kollektiv zurückgegeben. Dies wird empfohlen, wenn:
Beispiel:
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); }
Best Practice
Während beide Ansätze ihre Vorzüge haben, ist die Die empfohlene Best Practice besteht darin, Fehler sofort zurückzugeben. Dies:
Für nicht schwerwiegende Fehler gilt jedoch, dass sind Teil einer größeren Validierungs- oder Verarbeitungsphase, die Anhäufung von Fehlern und deren gemeinsame Rückgabe kann mehr sein angemessen.
Aktualisierungen
Dieser Artikel wurde im Laufe der Zeit mit Erkenntnissen aus Blogbeiträgen und Änderungen in Best Practices aktualisiert:
Das obige ist der detaillierte Inhalt vonWie sollten ASP.NET-Web-APIs Fehler zurückgeben: sofort oder kollektiv?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!