REST API — это архитектурный стиль, а не стандарт, для построения распределенных систем. Он основан на принципах, таких как statelessness, клиент-серверная архитектура и использование стандартных HTTP-методов (GET, POST, PUT, DELETE, PATCH) для операций над ресурсами.
Ключевые принципы REST:
- Stateless (отсутствие состояния): Сервер не хранит информацию о состоянии клиента между запросами. Каждый запрос содержит всю необходимую информацию для его обработки.
- Client-Server (клиент-сервер): Четкое разделение клиента и сервера. Каждый может развиваться независимо.
- Cacheable (кэшируемый): Ответы могут быть помечены как кэшируемые или не кэшируемые, что улучшает производительность.
- Layered System (многоуровневая система): Клиент не может узнать, напрямую ли он подключен к серверу, или через промежуточные слои.
- Uniform Interface (единообразный интерфейс): Стандартизованные способы взаимодействия с ресурсами. Включает:
- Идентификация ресурсов (URI)
- Манипуляции ресурсами через представление (информация о ресурсе передается в representations)
- Самоописывающиеся сообщения (каждое сообщение содержит достаточную информацию для обработки)
- Hypermedia as the Engine of Application State (HATEOAS) - состояние приложения управляется гиперссылками.
Пример использования стандартных HTTP-методов:
| Метод HTTP | Действие над ресурсом (например, /users) | Описание |
|---|
GET | /users или /users/{id} | Получение списка пользователей или конкретного пользователя. |
POST | /users | Создание нового пользователя. |
PUT | /users/{id} | Полное обновление данных пользователя по его ID. |
PATCH | /users/{id} | Частичное обновление данных пользователя по его ID. |
DELETE | /users/{id} | Удаление пользователя по его ID. |
REST API используются для взаимодействия между различными системами и приложениями, например, между фронтендом и бэкендом.