Из каких основных частей состоит HTTP-запрос в REST API?

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

Ответ

Типичный HTTP-запрос в REST API состоит из следующих обязательных и опциональных компонентов:

  1. HTTP-метод (Verb) — определяет операцию над ресурсом.

    • GET: получение данных.
    • POST: создание ресурса.
    • PUT/PATCH: полное/частичное обновление.
    • DELETE: удаление ресурса.
  2. URL (Endpoint/URI) — адрес целевого ресурса.

    • Пример: https://api.example.com/v1/users/456
  3. Заголовки (Headers) — метаданные запроса.

    • Content-Type: формат тела запроса (например, application/json).
    • Authorization: данные для аутентификации (например, Bearer <token>).
    • Accept: ожидаемый формат ответа.
  4. Тело запроса (Body) — данные, отправляемые на сервер (для POST, PUT, PATCH).

    {
      "name": "Alice",
      "email": "alice@example.com"
    }
  5. Параметры строки запроса (Query Parameters) — опциональные данные, добавляемые в URL после ?.

    • Пример: GET /api/users?role=admin&page=2

Полный пример запроса на создание пользователя:

POST /api/v1/users HTTP/1.1
Host: api.example.com
Content-Type: application/json
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9

{
  "username": "johndoe",
  "active": true
}

Почему это важно для тестирования: Каждый компонент (метод, заголовки, тело, параметры) должен быть проверен на валидность, безопасность и соответствие спецификации API.