Был ли у вас опыт работы с утилитами для выполнения HTTP-запросов в скриптах автоматизации?

«Был ли у вас опыт работы с утилитами для выполнения HTTP-запросов в скриптах автоматизации?» — вопрос из категории Скриптинг и автоматизация, который задают на 23% собеседований Devops Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Да, активно использую CLI-утилиты для HTTP-запросов в скриптах автоматизации, мониторинга и отладки API.

Основные инструменты в моём арсенале:

  1. curl — универсальный инструмент:

    • Для скриптов: Идеален благодаря своей предсказуемости и широким возможностям.
    • Пример проверки здоровья эндпоинта в Bash-скрипте:
      if curl -s -f -o /dev/null --retry 3 --max-time 5 http://service:8080/health; then
          echo "Service is healthy"
      else
          echo "Health check failed" >&2
          exit 1
      fi
    • Пример POST-запроса с JSON для вызова CI/CD API (например, GitLab):
      curl -X POST 
        -H "PRIVATE-TOKEN: <your_token>" 
        -H "Content-Type: application/json" 
        https://gitlab.example.com/api/v4/projects/1/trigger/pipeline 
        -d '{"ref":"main", "variables":{"DEPLOY_ENV":"staging"}}'
  2. httpie — для удобства отладки и читаемости:

    • Использую, когда нужен понятный вывод для быстрой проверки ответа API.
    • Пример: http GET https://api.example.com/v1/config Authorization:"Bearer $TOKEN"
  3. telnet/nc (netcat):

    • Для низкоуровневой диагностики проблем с сетевым подключением или проверки, что порт открыт и сервис отвечает на «сырые» TCP-запросы.

Эти утилиты — неотъемлемая часть пайплайнов развёртывания, скриптов самоисцеления инфраструктуры и повседневной отладки взаимодействия микросервисов.