Gdy korzystam z interfejsu API, jako klient muszę obsługiwać przypadki „sukcesu” inne niż przypadki „błędu”; Nie mam tam wyboru. Dlatego powinieneś zwrócić błąd w sytuacjach, które klient chce traktować inaczej, i powodzenia w sytuacjach, które klient chce traktować tak samo.
Jeśli wykonam zapytanie, które teoretycznie może zwrócić dowolną liczbę wyników, zero, jeden, dwieście i tak dalej, powinieneś zwrócić „sukces”, ilekroć API dostarcza pełną listę wszystkich wyników. I być może w przypadkach, gdy istnieje wiele wyników, zwrócono częściową listę wyników, aby uniknąć nadmiernego rozmiaru, i istnieje uzgodniony sposób, w jaki mógłbym uzyskać inne wyniki. Jest tak, ponieważ jako klient często chcę obsługiwać przypadek zerowych wyników, tak jak przypadek większej liczby wyników. Mogę potraktować to inaczej, ale nie chcę być do tego zmuszany.
Inaczej jest w przypadku, gdy szukam wartości. Oczekuję dokładnie jednego wyniku, wartości, której szukam. Potrzebuję tego jednego rezultatu, aby kontynuować to, co chcę robić w znaczący sposób. Tutaj o wiele bardziej dopuszczalne jest zwrócenie statusu 404 dla przypadku, w którym nie ma żadnej wartości, ponieważ i tak muszę inaczej traktować tę sprawę.
Podsumowanie: Jeśli klient oczekuje dowolnej liczby wyników, od zera do dużych liczb, zwróć „sukces”, jeśli wszystkie wyniki zostaną dostarczone, nawet jeśli liczba jest równa zero. Jeśli klient oczekuje dokładnie jednego wyniku, zwróć sukces, jeśli wynik zostanie znaleziony, i błąd, jeśli wynik nie zostanie znaleziony.