Ответ
REST (Representational State Transfer) — это архитектурный стиль для построения распределенных веб-сервисов, использующий протокол HTTP как есть. Его ключевая идея — взаимодействие с ресурсами через их представления (например, JSON или XML) с помощью стандартных HTTP-методов.
Основные принципы REST:
- Единообразие интерфейса (Uniform Interface): Использование стандартных HTTP-методов (GET, POST, PUT, DELETE, PATCH) для операций CRUD над ресурсами, идентифицируемыми уникальными URI.
- Отсутствие состояния (Stateless): Каждый запрос от клиента должен содержать всю информацию, необходимую серверу для его обработки. Сервер не хранит состояние сессии клиента.
- Кэшируемость (Cacheable): Ответы сервера должны явно указывать, можно ли их кэшировать, чтобы повысить производительность.
- Клиент-серверная архитектура: Четкое разделение обязанностей.
- Слоистая система (Layered System): Клиент не знает, взаимодействует ли он напрямую с конечным сервером или через промежуточные узлы (прокси, балансировщики).
Пример RESTful запроса и ответа:
GET /api/users/123 HTTP/1.1
Host: api.example.com
Accept: application/json
{
"id": 123,
"name": "Иван Иванов",
"email": "ivan@example.com",
"_links": {
"self": { "href": "/api/users/123" },
"orders": { "href": "/api/users/123/orders" }
}
}
Почему это важно: REST обеспечивает простоту, масштабируемость и независимость клиента от сервера, что делает его стандартом для публичных API.