Skip to content

About

CLI‑утилита для проверки HTTP‑эндпоинтов.

Resources

Stars

1 star

Watchers

0 watching

Forks

Latest commit

 

History

15 Commits

Folders and files

Repository files navigation

Утилита easy-http-ping

Coverage License Go Version

Простая CLI‑утилита на Go для проверки HTTP‑эндпоинтов: выводит статус, латентность и объём прочитанного тела, поддерживает интерактивный ввод URL, автодобавление https://, таймаут, ретраи, прокси и JSON‑вывод.

Архитектура

Утилита построена на основе следующих компонентов:

  • CLI-интерфейс (Cobra) — обработка команд и флагов, интерактивный ввод URL
  • HTTP-клиент — настраиваемый транспорт с поддержкой таймаутов, прокси и TLS
  • Retry-механизм — автоматические повторы при временных сбоях сети
  • JSON-вывод — машиночитаемый формат для интеграции с другими инструментами

Основной поток работы:

  1. Парсинг аргументов командной строки
  2. Нормализация URL (добавление https:// при необходимости)
  3. Выполнение HTTP-запроса с учетом таймаутов и ретраев
  4. Измерение латентности и чтение тела ответа
  5. Вывод результата в человекочитаемом или JSON-формате

Установка

  • Требуется Go 1.22+.
  • Клонирование и сборка:
    • git clone <repo> && cd easy-http-ping
    • go build -o easy-http-ping

Альтернатива: запуск без сборки — go run . ping из корня проекта.

Быстрый старт

  • Интерактивный режим: go run . ping — ввести example.com; утилита подставит https:// автоматически.
  • Неинтерактивный: go run . ping --url https://httpbin.org/get.
  • Сборка и запуск бинарника: go build -o easy-http-ping && ./easy-http-ping ping --url ya.ru.

Флаги

  • --url — адрес для проверки; при отсутствии включается интерактивный ввод и автодобавление https://.
  • --timeout — таймаут HTTP‑клиента, например 2s или 500ms.
  • --retries — число повторов при ошибках сети/временных сбоях.
  • --method — HTTP‑метод (GET, HEAD, POST); HEAD не читает тело и быстрее для health‑checks.
  • --insecure — отключить проверку TLS‑сертификата; использовать только в dev/QA, небезопасно для продакшена.
  • --json — машиночитаемый вывод в JSON с полями up, status, ms, bytes, url, attempts.
  • --max-bytes — лимит чтения тела (байт), 0 — без ограничения; по умолчанию 1 МБ.

Полный список и примеры доступны в easy-http-ping ping --help.

Примеры

  • Интерактив:
    • easy-http-ping ping — ввод service.local → запрос к https://service.local.
  • JSON‑вывод:
    • easy-http-ping ping --url example.com --json.
  • Быстрый health‑check:
    • easy-http-ping ping --url https://service/health --method HEAD --timeout 2s --retries 2.
  • Самоподписанные сертификаты в dev:
    • easy-http-ping ping --url https://localhost:8443 --insecure.
  • Большие ответы:
    • easy-http-ping ping --url https://example.com/big --max-bytes 65536.
  • Работа через корпоративный прокси:
    • HTTPS_PROXY=https://proxy.company:8443 NO_PROXY=localhost,127.0.0.1 easy-http-ping ping --url service.local.

About

CLI‑утилита для проверки HTTP‑эндпоинтов.

Resources

Stars

1 star

Watchers

0 watching

Forks

Contributors

Languages