Короткий ответ
REST (REpresentational State Transfer) — архитектурный стиль, основанный на веб-стандартах: он использует протокол HTTP для обмена данными. Всё содержимое рассматривается как ресурсы: каждый ресурс идентифицируется URI и доступен через единый интерфейс HTTP-методов, а клиент получает его представление — обычно JSON или XML. Веб-сервисы, построенные по этому стилю, называют RESTful; ключевой принцип — отсутствие состояния на сервере (statelessness).
Как это работает подробнее
Идемпотентность означает, что повторное выполнение одной и той же операции даёт тот же результат: состояние ресурса не меняется от количества вызовов. Статус-коды HTTP сообщают клиенту об исходе запроса.
- Методы: GET — получение ресурса (безопасный); POST — создание или добавление данных; PUT — полная замена или обновление; DELETE — удаление; PATCH — частичное обновление; также есть OPTIONS и HEAD.
- Идемпотентны: GET, PUT и DELETE. POST не идемпотентен: повторный POST может создать несколько ресурсов.
- Статус-коды: 200 OK; 201 Created; 204 No Content; 400 Bad Request; 401 Unauthorized; 403 Forbidden; 404 Not Found; 409 Conflict; 500 Internal Server Error.
Пример кода
Запрос и ответ REST
GET /users/42 HTTP/1.1
Host: api.example.com
Accept: application/json
HTTP/1.1 200 OK
Content-Type: application/json
{ "id": 42, "name": "Alice" }Что использовать на практике
- Проектируйте ресурсы как существительные, доступные через единый интерфейс HTTP-методов.
- Корректно используйте статус-коды: 201 при создании, 204 после DELETE, 4xx для ошибок клиента, 5xx для ошибок сервера.
- Держите сервис stateless — переносите контекст клиента в сам запрос.