Szybka pomoc

Ściągawka z RESTful API

Szybki przewodnik po RESTful API: semantyka metod HTTP, kody statusu, struktury błędów JSON, nagłówki i idempotentność.

· Opublikowano

REST (Representational State Transfer) to styl architektoniczny do projektowania sieciowych usług API internetowych przez HTTP.

Metody HTTP i semantyka

Metoda Docelowa akcja Bezpieczna Idempotentna
GET Pobierz reprezentację zasobu Tak Tak
POST Utwórz nowy zasób podrzędny Nie Nie
PUT Zastąp całą reprezentację zasobu Nie Tak
PATCH Częściowo zaktualizuj właściwości zasobu Nie Nie
DELETE Usuń zasób Nie Tak
HEAD Pobierz nagłówki bez treści odpowiedzi Tak Tak
OPTIONS Sprawdź obsługiwane metody HTTP dla punktu końcowego Tak Tak

Popularne kody odpowiedzi HTTP

Sukces (2xx)

  • 200 OK: Żądanie powiodło się (treść zawiera reprezentację).
  • 201 Created: Zasób został utworzony (nagłówek Location wskazuje URI).
  • 202 Accepted: Żądanie przyjęte do przetwarzania asynchronicznego.
  • 204 No Content: Akcja powiodła się, brak treści odpowiedzi (typowe dla DELETE).

Błędy klienta (4xx)

  • 400 Bad Request: Nieprawidłowa składnia, błędne parametry lub błąd walidacji.
  • 401 Unauthorized: Brak uwierzytelnienia lub jest ono nieprawidłowe.
  • 403 Forbidden: Uwierzytelniony użytkownik nie ma uprawnień do zasobu.
  • 404 Not Found: URI zasobu nie istnieje.
  • 409 Conflict: Żądanie koliduje z bieżącym stanem zasobu (np. duplikat klucza).
  • 422 Unprocessable Entity: Poprawne składniowo żądanie nie przeszło walidacji semantycznej.
  • 429 Too Many Requests: Przekroczono limit liczby żądań (Rate Limit).

Błędy serwera (5xx)

  • 500 Internal Server Error: Ogólny nieobsłużony błąd po stronie serwera.
  • 502 Bad Gateway: Serwer nadrzędny zwrócił nieprawidłową odpowiedź.
  • 503 Service Unavailable: Serwer przeciążony lub w trakcie konserwacji.

Standardowa koperta błędu JSON

{
  "error": {
    "code": "VALIDATION_ERROR",
    "message": "The email address provided is already registered.",
    "details": [
      {
        "field": "email",
        "issue": "unique_constraint_violated"
      }
    ]
  }
}

Źródła

Powiązane tematy