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łówekLocationwskazuje URI).202 Accepted: Żądanie przyjęte do przetwarzania asynchronicznego.204 No Content: Akcja powiodła się, brak treści odpowiedzi (typowe dlaDELETE).
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"
}
]
}
}