REST (Representational State Transfer) — это архитектурный стиль проектирования сетевых веб-API сервисов поверх протокола HTTP.
HTTP-методы и их семантика
| Метод | Целевое действие | Безопасен | Идемпотентен |
|---|---|---|---|
GET |
Получить представление ресурса | Да | Да |
POST |
Создать новый подчинённый ресурс | Нет | Нет |
PUT |
Полностью заменить представление ресурса | Нет | Да |
PATCH |
Частично обновить свойства ресурса | Нет | Нет |
DELETE |
Удалить ресурс | Нет | Да |
HEAD |
Получить заголовки без тела ответа | Да | Да |
OPTIONS |
Запросить поддерживаемые HTTP-методы конечной точки | Да | Да |
Распространённые коды ответа HTTP
Успех (2xx)
200 OK: Запрос выполнен успешно (тело содержит представление).201 Created: Ресурс успешно создан (заголовокLocationуказывает URI).202 Accepted: Запрос принят в асинхронную обработку.204 No Content: Действие выполнено, тело ответа отсутствует (обычно дляDELETE).
Ошибки клиента (4xx)
400 Bad Request: Некорректный синтаксис, параметры или ошибка валидации.401 Unauthorized: Аутентификация отсутствует или недействительна.403 Forbidden: Пользователь аутентифицирован, но не имеет прав доступа к ресурсу.404 Not Found: URI ресурса не существует.409 Conflict: Запрос конфликтует с текущим состоянием ресурса (напр., дубликат ключа).422 Unprocessable Entity: Синтаксически верный запрос не прошёл семантическую валидацию.429 Too Many Requests: Превышен лимит частоты запросов (Rate Limit).
Ошибки сервера (5xx)
500 Internal Server Error: Общая необработанная ошибка на стороне сервера.502 Bad Gateway: Вышестоящий сервер (Upstream) вернул некорректный ответ.503 Service Unavailable: Сервер перегружен или находится на обслуживании.
Стандартная обёртка ошибки JSON
{
"error": {
"code": "VALIDATION_ERROR",
"message": "The email address provided is already registered.",
"details": [
{
"field": "email",
"issue": "unique_constraint_violated"
}
]
}
}