Udostępnij za pośrednictwem


Kody odpowiedzi interfejsu API poleceń

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