С какими HTTP-методами (веб-запросами) вы работали при тестировании API?

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

Ответ

При тестировании API активно работал со стандартными HTTP-методами (глаголами), каждый из которых определяет тип операции над ресурсом.

Основные HTTP-методы и их назначение:

Метод Идиоматическое назначение (REST) Пример использования
GET Получение данных. Без побочных эффектов (идемпотентный, безопасный). Получить список пользователей или конкретного пользователя.
POST Создание нового ресурса. Создать нового пользователя, отправить данные формы.
PUT Полное обновление ресурса. Создает ресурс, если он не существует (идемпотентный). Обновить все поля профиля пользователя.
PATCH Частичное обновление ресурса. Обновить только email пользователя.
DELETE Удаление ресурса (идемпотентный). Удалить пользователя по ID.

Практические примеры запросов (cURL):

# 1. GET: Получение пользователя с ID 123
curl -X GET "https://api.example.com/v1/users/123" 
     -H "Authorization: Bearer <token>"

# 2. POST: Создание нового пользователя с JSON-телом
curl -X POST "https://api.example.com/v1/users" 
     -H "Content-Type: application/json" 
     -H "Authorization: Bearer <token>" 
     -d '{"name": "Alice", "email": "alice@example.com"}'

# 3. PUT: Полное обновление пользователя с ID 123
curl -X PUT "https://api.example.com/v1/users/123" 
     -H "Content-Type: application/json" 
     -d '{"name": "Alice Smith", "email": "alice.smith@example.com"}'

# 4. DELETE: Удаление пользователя с ID 123
curl -X DELETE "https://api.example.com/v1/users/123" 
     -H "Authorization: Bearer <token>"

Что проверял в запросах и ответах:

  • Коды состояния HTTP (200 OK, 201 Created, 400 Bad Request, 401 Unauthorized, 404 Not Found, 500 Internal Server Error).
  • Заголовки (Headers): Content-Type, Authorization, Accept.
  • Тело запроса (Body): Форматы JSON, XML, x-www-form-urlencoded.
  • Параметры: Query-параметры, path-переменные.
  • Структура и валидация данных в ответе (соответствие контракту/схеме).