Szukam wskazówek dotyczących dobrych praktyk, jeśli chodzi o zwracanie błędów z interfejsu API REST. Pracuję nad nowym interfejsem API, dzięki czemu mogę teraz obrać dowolny kierunek. Mój typ zawartości to XML, ale planuję w przyszłości obsługiwać JSON.
Teraz dodam kilka przypadków błędów, na przykład klient próbuje dodać nowy zasób, ale przekroczył limit miejsca. Obsługuję już niektóre przypadki błędów z kodami stanu HTTP (401 dla uwierzytelnienia, 403 dla autoryzacji i 404 dla zwykłych identyfikatorów URI niepoprawnego żądania). Przejrzałem błogosławione kody błędów HTTP, ale żaden z zakresów 400–417 nie wydaje się odpowiedni do zgłaszania błędów specyficznych dla aplikacji. Na początku kusiło mnie, aby zwrócić błąd aplikacji z 200 OK i konkretnym ładunkiem XML (tj. Zapłać nam więcej, a dostaniesz potrzebną pamięć!), Ale przestałem myśleć o tym i wydaje się, że mydło (/ wzruszając ramionami). Poza tym wydaje mi się, że dzielę odpowiedzi na błędy na osobne przypadki, ponieważ niektóre są oparte na kodzie stanu HTTP, a inne na treści.
Więc jakie są zalecenia branżowe? Dobre praktyki (proszę wyjaśnić dlaczego!), A także, od klienta pow, jaki rodzaj obsługi błędów w interfejsie API REST ułatwia życie kodu klienta?