Komunikaty błędów

Opis rozdziału

Zgodnie z filozofią REST usługa API o błędzie informuje zwracając odpowiedni kod odpowiedzi HTTP z rodziny 4xx lub 5xx. Wyjątkiem są wywołania JSONP lub prośba o opakowanie odpowiedzi (parametr sterujący envelope). Dokładna informacja o błędzie znajduje się w ciele odpowiedzi usługi API - w niniejszym rozdziale można znaleźć listę wszystkich obsługiwanych błędów.

Struktura odpowiedzi z błędem

HTTP/1.1 500 Internal Server Error
Date: Wed, 26 Mar 2014 11:27:42 GMT
Server: Apache            
{
    "code": "Kod błędu"
    "message": "Tekstowy komunikat z błędem (w języku polskim)"
    "category": "Kategoria, do której zalicza się błąd",
    "attributes": "Dodatkowe atrybuty opisujące błąd",
    "source": "Źródło/Element, który wywołał błąd",
    "children": "Błędy wchodzące w skład głównego"
}
Atrybuty:
  • code
  • message
  • category
są zwracane z każdym komunikatem błędu. Pozostałe dotyczą tylko niektórych typów błędów a ich struktura zależy od konkretnego przypadku.

Przykłady błędnych zapytań

Problem: Brak nagłówka 'Authorization', przez co użytkownik nie może być autoryzowany.
Zapytanie:
GET /v1/domains/demo.kei.pl HTTP/1.1
Host: as27.kei.pl
Accept: */*
X-Forwarded-For: 94.152.201.90
Content-Type: application/json
Odpowiedź:
HTTP/1.1 401 Internal Server Error
Date: Wed, 26 Mar 2014 11:27:42 GMT
Server: Apache
:
Content-Length: 200
Connection: close
Content-Type: application/json
Problem: Próba dodania nowego konta o nieprawidłowej nazwie.
Zapytanie:
POST /v1/domains/demo.kei.pl HTTP/1.1
Host: as27.kei.pl
Accept: */*
X-Forwarded-For: 94.152.201.90
Content-Type: application/json
Authorization: Basic cG9zdG1hc3RlckBkZW1vLmtlaS5wbDpmODhlMWJmZTA4M2M5MjljOTQxMzJjMzA4NjY1MWJiMjFkMWZiNmY1
{
    "description":"opis nowego konta email",
    "password":"Haslo12",
    "password_retype":"Haslo12"
}
Odpowiedź:
HTTP/1.1 500 Internal Server Error
Date: Wed, 26 Mar 2014 11:27:42 GMT
Server: Apache
:
Content-Length: 200
Connection: close
Content-Type: application/json
{
    "code": "500.301"
    "message": "Nieprawidłowa nazwa konta pocztowego"
    "category": "validation"
}

Legenda

Kod HTTP Kod HTTP.Kod wewnętrzny API ('code') Kategoria ('category')

Lista błędów

500 500 internal
Błąd wewnętrzny aplikacji
500 500.100 internal
Błąd wewnętrzny aplikacji
500 500.101 internal
Błąd wewnętrzny aplikacji
400 400.1 internal
Parametry lub nagłówki żądania są nieprawidłowe
503 503.1 internal
Trwa tymczasowa przerwa serwisowa
404 404.1 resource_missing
Podana ścieżka nie jest obsługiwana
404 404.2 resource_missing
Podana ścieżka żądania jest nieprawidłowa
400 400.1 internal
Wskazana wersja API jest nieobsługiwana
400 400.2 internal
Nie wskazano wersji API
405 405.1 internal
Zasób nie obsługuje użytej metody HTTP
501 501.1 internal
Użyta metoda HTTP nie jest obsługiwana przez API
401 401.1 authorization
Brak autoryzacji użytkownika
403 403.1 authorization
Brak uprawnień do wykonania polecenia API
403 403.2 authorization
Brak uprawnień do wskazanego zasobu
500 500.110 internal
Brak połączenia ze źródłem danych
500 500.111 internal
Wykonanie zapytania SQL nie powiodło się
500 500.112 internal
Listowanie danych nie powiodło się
500 500.115 internal
Odczyt struktury zasobu nie powiódł się
500 500.116 internal
Odczyt wskazanego zasobu nie powiódł się
500 500.117 internal
Utworzenie wskazanego zasobu nie powiódło się
500 500.118 internal
Usunięcie wskazanego zasobu nie powiódło się
500 500.119 internal
Aktualizacja wskazanego zasobu nie powiódła się
500 500.120 internal
Aktualizacja wskazanych zasobów nie powiódła się
409 409.1 resource_existing
Wskazany zasób już istnieje
404 404.4 resource_missing
Wskazany zasób nie istnieje
500 500.130 validation
Brak reguły walidacji dla zasobu
500 500.131 validation
Walidacja parametrów zasobu nie powiodła się
403 403.3 authorization
Konto pocztowe jest zablokowane
401 401.1 internal
Brak identyfikatora zasobu
500 500.202 internal
Przekroczenie przyznanego limitu zajętości
500 500.203 internal
Przekroczenie przyznanego limitu liczby kont pocztowych
500 500.204 internal
Przekroczenie przyznanego limitu liczby aliasów pocztowych
500 500.205 internal
Przekroczenie przyznanego limitu liczby list pocztowych
500 500.206 internal
Przekroczenie przyznanego limitu liczby przekierowań
500 500.301 validation
Nieprawidłowa nazwa konta pocztowego
500 500.302 validation
Nieprawidłowa domena konta pocztowego
500 500.303 validation
Nieprawidłowe hasło konta pocztowego
500 500.304 validation
Nieprawidłowy opis konta pocztowego
500 500.305 validation
Nieprawidłowy limit zajętości konta pocztowego
500 500.306 validation
Nieprawidłowa data ważności konta pocztowego
500 500.311 validation
Nieprawidłowe adresy pocztowego na liście przekierowań
500 500.312 validation
Nieprawidłowe adresy pocztowego na liście aliasów pocztowych
500 500.313 validation
Nieprawidłowy limit przekierowań
500 500.314 validation
Nieprawidłowy limit aliasów pocztowych
500 500.315 validation
Nieprawidłowa liczba dni czyszczenia skrzynki odbiorczej
500 500.316 validation
Nieprawidłowa liczba dni czyszczenia kosza
500 500.317 validation
Nieprawidłowy liczba dni czyszczenia SPAM
500 500.321 validation
Nieprawidłowa czułość filtru antyspamowego
500 500.322 validation
Nieprawidłowa sposób oznaczania wiadomości jako SPAM
500 500.323 validation
Nieprawidłowe wpisy na białej liście antyspamowej
500 500.324 validation
Nieprawidłowe wpisy na czarnej liście antyspamowej
500 500.325 validation
Nieprawidłowe wpisy na białej liście dla greylist
500 500.326 validation
Nieprawidłowe wpisy na białej liście dla spf
500 500.327 validation
Nieprawidłowe wpisy na białej liście dla rbl
500 500.331 validation
Nieprawidłowa data początkowa dla auto-odpowiedzi
500 500.332 validation
Nieprawidłowa data końcowa dla auto-odpowiedzi
500 500.351 validation
Nieprawidłowa nazwa aliasu pocztowego
500 500.352 validation
Nieprawidłowa domena aliasu pocztowego
500 500.353 validation
Nieprawidłowy adres docelowy aliasu pocztowego
500 500.361 validation
Nieprawidłowa nazwa listy pocztowej
500 500.362 validation
Nieprawidłowa domena listy pocztowej
500 500.363 validation
Nieprawidłowy opis listy pocztowej
500 500.364 validation
Nieprawidłowy tryb działania listy pocztowej
500 500.365 validation
Nieprawidłowy wpis na liście moderatorów
500 500.366 validation
Nieprawidłowy wpis na liście subskrybentów listy
500 500.367 validation
Nieprawidłowy tryb odpowiedania na listę
500 500.368 validation
Nieprawidłowy adres odpowiedzi na listę