Ответ
REST (Representational State Transfer) – это архитектурный стиль для построения распределенных систем, основанный на стандартах и протоколах (в первую очередь, HTTP).
Ключевые принципы RESTful API:
-
Единообразие интерфейса (Uniform Interface):
- Ресурсы идентифицируются URI (например,
/api/books/123). - Действия над ресурсами определяются HTTP-методами (GET, POST, PUT, DELETE, PATCH).
- Самодостаточные сообщения (запрос/ответ содержат всю необходимую информацию).
- Использование HATEOAS (Hypermedia as the Engine of Application State) – ссылки на связанные ресурсы в ответе.
- Ресурсы идентифицируются URI (например,
-
Отсутствие состояния (Stateless): Каждый запрос от клиента должен содержать всю информацию, необходимую для его обработки. Сервер не хранит состояние сессии клиента.
-
Кэшируемость (Cacheable): Ответы должны явно указывать, можно ли их кэшировать и как долго.
-
Клиент-серверная архитектура: Четкое разделение ответственности.
-
Слоистая система (Layered System): Клиент не знает, взаимодействует ли он с конечным сервером или промежуточным прокси.
Пример корректного REST-запроса и ответа:
- Запрос:
GET /api/users/42 HTTP/1.1 - Ответ (200 OK):
{ "id": 42, "name": "Alice", "email": "alice@example.com", "_links": { "self": { "href": "/api/users/42" }, "orders": { "href": "/api/users/42/orders" } } }REST API обычно используют JSON или XML в качестве формата представления данных.