Как выглядит базовый синтаксис команды cURL для тестирования API?

«Как выглядит базовый синтаксис команды cURL для тестирования API?» — вопрос из категории API тестирование, который задают на 24% собеседований AQA / Automation. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

cURL — это мой основной инструмент для быстрой ручной проверки API-эндпоинтов. Базовый синтаксис: curl [опции] [URL].

Наиболее часто используемые опции в тестировании:

  • -X или --request: Указание HTTP-метода (GET, POST, PUT, DELETE).
  • -H или --header: Добавление заголовков запроса (например, для Content-Type или авторизации).
  • -d или --data: Отправка тела запроса (данных).
  • -i или --include: Показать заголовки ответа в выводе.
  • -v или --verbose: Подробный вывод для отладки (показывает весь обмен данными).

Практические примеры для тестировщика:

  1. Простой GET-запрос:

    curl https://api.example.com/users
  2. GET с заголовком авторизации:

    curl -H "Authorization: Bearer YOUR_TOKEN" https://api.example.com/profile
  3. POST-запрос с отправкой JSON:

    curl -X POST 
         -H "Content-Type: application/json" 
         -d '{"username": "testuser", "email": "test@example.com"}' 
         https://api.example.com/users
  4. Отправка данных из файла (удобно для больших тел):

    curl -X POST -H "Content-Type: application/json" -d @request_body.json https://api.example.com/users
  5. Запрос с подробным выводом для анализа (мой любимый для отладки):

    curl -v -X POST -H "Content-Type: application/json" -d '{"status":"test"}' https://api.example.com/order

    Этот вывод покажет отправленные заголовки, статус ответа, заголовки ответа и тело ответа, что незаменимо при анализе проблем с CORS, аутентификацией или форматом данных.