Kanoniczne kody błędów interfejsów API gRPC.
Czasami obowiązuje kilka kodów błędów. Usługi powinny zwracać najbardziej dokładny kod błędu. Na przykład, jeśli mają zastosowanie oba kody, preferuj ustawienie OUT_OF_RANGE
zamiast FAILED_PRECONDITION
. I podobnie, lepiej jest wybrać NOT_FOUND
lub ALREADY_EXISTS
zamiast FAILED_PRECONDITION
.
Wartości w polu enum | |
---|---|
OK |
To nie błąd, a powodzenie zostało zwrócone. Mapowanie HTTP: 200 |
CANCELLED |
Operacja została anulowana, zwykle przez rozmówcę. Mapowanie HTTP: żądanie zamknięte przez klienta: 499 |
UNKNOWN |
Nieznany błąd. Ten błąd może być na przykład zwracany, gdy wartość Mapowanie HTTP: wewnętrzny błąd serwera 500 |
INVALID_ARGUMENT |
Klient podał nieprawidłowy argument. Pamiętaj, że różni się ona od tego w polu Mapowanie HTTP: błąd 400 |
DEADLINE_EXCEEDED |
Termin upłynął przed wykonaniem operacji. W przypadku operacji, które zmieniają stan systemu, ten błąd może zostać zwrócony nawet wówczas, gdy operacja zakończyła się pomyślnie. Na przykład pomyślna odpowiedź serwera mogła być tak opóźniona, że termin upłynął. Mapowanie HTTP: czas oczekiwania bramy 504 |
NOT_FOUND |
Nie znaleziono żądanego elementu (np. pliku lub katalogu). Uwaga do programistów serwerów: jeśli żądanie zostanie odrzucone dla całej klasy użytkowników, np. stopniowego wdrażania funkcji lub nieudokumentowanej listy dozwolonych aplikacji, może być używana wartość Mapowanie HTTP: 404 – nie znaleziono |
ALREADY_EXISTS |
Element, który klient próbował utworzyć (np. plik lub katalog), już istnieje. Mapowanie HTTP: konflikt 409 |
PERMISSION_DENIED |
Element wywołujący nie ma uprawnień do wykonania określonej operacji. W przypadku odrzuceń spowodowanych przez wyczerpanie się niektórych zasobów nie można używać Mapowanie HTTP: 403 Zabronione |
UNAUTHENTICATED |
Żądanie nie ma prawidłowych danych uwierzytelniających dla tej operacji. Mapowanie HTTP: 401 Brak autoryzacji |
RESOURCE_EXHAUSTED |
Jeden zasób mógł zostać wyczerpany, być może limit na użytkownika albo cały system plików nie mają już miejsca. Mapowanie HTTP: 429 Zbyt wiele żądań |
FAILED_PRECONDITION |
Operacja została odrzucona, ponieważ system nie znajduje się w stanie wymaganym do jej wykonania. Na przykład katalog do usunięcia nie jest pusty, operacja rmdir zostanie zastosowana do danych spoza katalogu itp. Implementatorzy usług mogą skorzystać z tych wytycznych, aby zdecydować między Mapowanie HTTP: błąd 400 |
ABORTED |
Operacja została przerwana, najczęściej z powodu problemu równoczesności, np. w przypadku niepowodzenia sekwencera lub przerwania transakcji. Zobacz wskazówki powyżej, które pomogą Ci wybrać od Mapowanie HTTP: konflikt 409 |
OUT_OF_RANGE |
Podjęto próbę zakończenia prawidłowego zakresu. Może to być na przykład wyszukanie lub przeczytanie końca pliku. W przeciwieństwie do wartości Między Mapowanie HTTP: błąd 400 |
UNIMPLEMENTED |
Operacja nie została wdrożona lub nie jest obsługiwana w tej usłudze. Mapowanie HTTP: błąd 501 |
INTERNAL |
Błędy wewnętrzne. Oznacza to, że pewne niezmienniki oczekiwane przez system bazowy zostały uszkodzone. Ten kod błędu jest zarezerwowany dla poważnych błędów. Mapowanie HTTP: wewnętrzny błąd serwera 500 |
UNAVAILABLE |
Usługa jest obecnie niedostępna. Jest to najczęściej stan przejściowy, który można rozwiązać, ponawiając próbę ponowienia. Pamiętaj, że nie zawsze jest ponowne próby wykonania działań niezwiązanych z tożsamością. Zobacz wskazówki powyżej, które pomogą Ci wybrać od Mapowanie HTTP: usługa 503 niedostępna |
DATA_LOSS |
nieodwracalna utrata danych lub uszkodzenie ich; Mapowanie HTTP: wewnętrzny błąd serwera 500 |