Что такое архитектурный стиль REST?

«Что такое архитектурный стиль REST?» — вопрос из категории API тестирование, который задают на 10% собеседований QA Тестировщик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

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.