Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy: Centrum Partnerów | Polecenia Centrum Partnerów
Odpowiednie role: administrator poleceń | Użytkownik poleceń
REST API odsyłaczy w Centrum Partnerskim zwracają obiekt JSON zawierający kod statusu. Ten kod wskazujący, czy żądanie zakończyło się powodzeniem, czy dlaczego zakończyło się niepowodzeniem.
Reakcje na sukces
Kod stanu 2xx wskazuje, że żądanie klienta zostało pomyślnie odebrane, zrozumiałe i zaakceptowane. Następujące kody stanu 2xx wskazują odpowiedź na powodzenie:
- 200: Potwierdzono powodzenie
- 201: Utworzony zasób
- 202: Zaakceptowane
- 204: Brak zawartości do zwrócenia
Odpowiedzi na błędy
Każda odpowiedź z kodem stanu 4xx lub 5xx zawiera komunikat o błędzie ze szczegółami dotyczącymi warunków błędu dla tego kodu.
W poniższej tabeli wymieniono i opisano kody stanu HTTP, które mogą być zwracane w scenariuszach błędów.
Kod stanu | Komunikat o stanie | opis |
---|---|---|
400 | Nieprawidłowe żądanie | Nie można przetworzyć żądania, ponieważ jest ono źle sformułowane lub nieprawidłowe. |
401 | Brak autoryzacji | Wymagane informacje dotyczące uwierzytelniania są brakujące lub nieprawidłowe dla zasobu. |
403 | Dostęp zabroniony | Odmowa dostępu do żądanego zasobu. Użytkownik może nie mieć wystarczających uprawnień. |
404 | Nie znaleziono | Żądany zasób nie istnieje. |
405 | Niedozwolona metoda | Metoda HTTP w żądaniu nie jest dozwolona w zasobie. |
406 | Nie do przyjęcia | Ta usługa nie obsługuje formatu żądanego w nagłówku Accept. |
409 | Konflikt | Obecny stan wchodzi w konflikt z tym, czego się oczekuje. Na przykład określony folder nadrzędny może nie istnieć. |
410 | Zniknął | Żądany zasób nie jest już dostępny na serwerze. |
411 | Wymagana długość | Nagłówek Content-Length jest wymagany w żądaniu. |
412 | Warunek wstępny niespełniony | Warunek wstępny podany w żądaniu (na przykład nagłówek if-match) nie jest zgodny z bieżącym stanem zasobu. |
413 | Zbyt duża jednostka żądania | Rozmiar żądania przekracza maksymalny limit. |
415 | Nieobsługiwany typ nośnika | Typ zawartości żądania jest formatem, który usługa nie obsługuje. |
416 | Żądany zakres nie jest możliwy do zaspokojenia | Określony zakres bajtów jest nieprawidłowy lub niedostępny. |
422 | Nieprzetworzona jednostka | Nie można przetworzyć żądania, ponieważ jest ono semantycznie niepoprawne. |
423 | Zablokowano | Zasób, do którego uzyskuje się dostęp, jest zablokowany. |
429 | Zbyt wiele żądań | Aplikacja kliencka jest ograniczona i nie powinna próbować powtarzać żądania przez jakiś czas. |
500 | Wewnętrzny błąd serwera | Wystąpił wewnętrzny błąd serwera podczas przetwarzania żądania. |
501 | Nie zaimplementowano | Żądana funkcja nie jest zaimplementowana. |
503 | Usługa niedostępna | Usługa jest tymczasowo niedostępna do konserwacji lub jest przeciążona. Żądanie można powtórzyć po opóźnieniu, którego długość może być określona w nagłówku Ponów próbę po. |
504 | Przekroczono limit czasu bramy | Serwer, działając jako serwer proxy, nie otrzymał terminowej odpowiedzi z nadrzędnego serwera potrzebnego do uzyskania dostępu podczas próby ukończenia żądania. Może wystąpić razem z 503. |
507 | Niewystarczająca ilość miejsca do magazynowania | Osiągnięto maksymalny limit przydziału magazynu. |
509 | Przekroczono limit przepustowości | Aplikacja kliencka ograniczana przez przekroczenie maksymalnego limitu przepustowości. Aplikacja może ponowić próbę ponownego żądania po pewnym czasie. |
Błąd typu zasobu
Odpowiedź na błąd to pojedynczy obiekt JSON zawierający pojedynczą właściwość o nazwie error. Ten obiekt zawiera wszystkie szczegóły błędu. Możesz użyć informacji zwróconych tutaj zamiast lub oprócz kodu stanu HTTP.
W poniższej tabeli i przykładach kodu opisano schemat odpowiedzi na błąd.
Nazwisko | Pisz | opis |
---|---|---|
kod | sznurek | Zawsze zwracane. Wskazuje rodzaj błędu, który wystąpił. Nie-null. |
wiadomość | string | Zawsze zwracane. Opisuje szczegółowo błąd i zawiera więcej informacji o debugowaniu. Brak wartości null. Maksymalna długość to 1024 znaki. |
błąd wewnętrzny | obiekt | Opcjonalny. Inny obiekt błędu z bardziej szczegółowymi informacjami dotyczącymi wystąpienia błędu. |
innerError.code | ciąg liczbowy | Zawsze zwracane, jeśli błąd wewnętrzny ma wartość inną niż null. Zawiera bardziej szczegółowe informacje o kodzie błędu w górnej wartości kodu błędu. |
wiadomośćBłęduWewnętrznego | string | Zawsze zwracane, jeśli błąd wewnętrzny ma wartość inną niż null. Zawiera bardziej szczegółowy komunikat o błędzie pod głównym komunikatem o błędzie. |
szczegóły.wnętrznegoBłędu | obiekt tablicy | Opcjonalny. Zawiera więcej szczegółów na temat błędu. Przede wszystkim przydatne w przypadku błędów walidacji danych wejściowych. |
cel | string | Opcjonalny. Miejsce docelowe, w którym pochodzi błąd. |
Przykładowa odpowiedź na błąd
{
"error": {
"code": "unauthenticated",
"message": "The caller is not authenticated.",
"innerError": {
"code": "99902",
"message": "Request not authenticated",
"details": null
}
}
}
Inny przykład z wypełnionym obiektem innerError.details :
{
"error": {
"code": "invalidRequest",
"message": "The request is malformed or incorrect.",
"innerError": {
"code": "99901",
"message": "InvalidInput",
"details": [
{
"InvalidReferralForCoSellConversion": [
"If PartnerLed referral has no solution it cannot be converted to co-sell referral"
]
}
]
}
}
}
Właściwość kodu
Właściwość code
zawiera jedną z następujących możliwych wartości. Aplikacje powinny być przygotowane do obsługi dowolnego z tych błędów.
Kod | Kod stanu HTTP | opis |
---|---|---|
invalidRequest | 400 | Żądanie jest źle sformułowane lub nieprawidłowe. |
Nieuwierzytelnione | 401 | Obiekt wywołujący nie jest uwierzytelniony. |
accessDenied | 403 | Obiekt wywołujący nie ma uprawnień do wykonania działania. |
itemNotFound | 404 | Nie można odnaleźć zasobu. |
resourceModified | 409 | Zasób, który jest aktualizowany, został zmieniony od ostatniego odczytu przez wywołującego, zazwyczaj wskazuje to na niezgodność elementu eTag. |
warunek wstępny nie powiódł się | 412 | Warunek wstępny podany w żądaniu (na przykład nagłówek if-match) nie jest zgodny z bieżącym stanem zasobu. |
generalException | 500 | Wystąpił nieokreślony błąd. |
serviceNotAvailable | 503 | Usługa jest niedostępna. Spróbuj ponownie wykonać żądanie po opóźnieniu. Może istnieć nagłówek "Retry-After". |
Właściwość wiadomości
Właściwość message
w katalogu głównym zawiera komunikat o błędzie przeznaczony dla dewelopera do odczytania. Komunikaty o błędach nie są zlokalizowane i nie powinny być wyświetlane bezpośrednio dla użytkownika. Kod nie powinien sprawdzać message
wartości tylko dlatego, że mogą one ulec zmianie w dowolnym momencie i często zawierają informacje dynamiczne specyficzne dla żądania, które zakończyły się niepowodzeniem. Powinieneś napisać kod obsługujący kody błędów zwracane we właściwościach code
, a następnie, aby uzyskać więcej szczegółów, połącz je z tekstem wiadomości.
obiekt InnerError
Obiekt innererror
może cyklicznie zawierać więcej innererror
obiektów z bardziej szczegółowymi kodami błędów. Aplikacja kliencka, w przypadku obsługi błędu, powinna przejrzeć wszystkie dostępne kody błędów i używać najbardziej szczegółowego kodu, który rozumie.
Istnieje kilka więcej błędów, które aplikacja może napotkać w zagnieżdżonych innererror
obiektach. Aplikacje nie są wymagane do obsługi tych błędów, ale mogą to zrobić, jeśli wybierzą. Usługa może dodawać nowe kody błędów lub w dowolnym momencie przestać zwracać stare, dlatego ważne jest, aby wszystkie aplikacje mogły obsługiwać [podstawowe kody błędów].
Kody błędów
Poniżej przedstawiono kody błędów zwracane przez interfejsy API:
Stan HTTP | Kod błędu HTTP | Kod błędu | opis |
---|---|---|---|
Nieprawidłowe żądanie | 400 | 99901 | Nieprawidłowe dane wejściowe |
Brak autoryzacji | 401 | 99902 | Nieautoryzowany dostęp |
Złe Żądanie | 400 | 99903 | Brak danych wejściowych |
Nie znaleziono | 404 | 99904 | Nie znaleziono zasobu |
Błąd wewnętrzny serwera | 500 | 99905 | Nie określono błędu |
Zbyt wiele żądań | 429 | 99906 | Zbyt wiele żądań |
Błąd Wewnętrzny Serwera | 500 | 99907 | Przejściowy błąd wewnętrzny |
Niepoprawne Żądanie | 400 | 99908 | Właściwość jest nieaktualizowalna |
Niepoprawne Żądanie | 400 | 99909 | Właściwość jest nienullowalna |
Warunek wstępny niespełniony | 412 | 99910 | Wartość elementu Etag nie jest zgodna |
Błędne żądanie | 400 | 99911 | Nieprawidłowy status polecenia do zaproszenia |
Nieprawidłowe żądanie | 400 | 99912 | Wymagane jest rozwiązanie o typie "name" |
Dostęp zabroniony | 403 | 99913 | Organizacja nie znajduje się na liście dozwolonych do tworzenia zasobu |
Dostęp zabroniony | 403 | 99914 | Organizacja nie znajduje się na liście uprawnionych do udziału w działaniach współsprzedaży |
Błąd wewnętrzny serwera | 500 | 99915 | Niepowodzenie wykonania żądania wewnętrznego |
Konflikt | 409 | 99917 | Zasób został już zmodyfikowany za pośrednictwem innego żądania |
WarunekWstępnyNiepowodzenie | 412 | 99918 | Warunek wstępny podany w żądaniu (na przykład nagłówek if-match) nie jest zgodny z bieżącym stanem zasobu. |
Niepoprawne żądanie | 400 | 99919 | Nieprawidłowa kwalifikacja odwołań do aktualizacji |
WewnętrznyBłądSerwera | 500 | 99999 | Wyjątek ogólny podczas przetwarzania żądania |