Back to blog
Adal journal

Как получать вебхуки локально без публичного IP-адреса

Вы разрабатываете API и хотите получать вебхуки от Stripe, GitHub, Telegram или другого сервиса прямо на локальном компьютере. Но есть проблема: компьютер находится за NAT, использует динамический IP-адрес и недоступен из интернета. Как в таком случае получать реальные запросы для разработки и тестирования?

Published Updated
Как получать вебхуки локально без публичного IP-адреса

При разработке сервисов часто возникает необходимость получать реальные запросы от внешних систем на локальном компьютере. Это может понадобиться для отладки, тестирования или проверки изменений перед их развёртыванием в продакшене.

Какие варианты обычно используют разработчики в такой ситуации?

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

  • Повторно использовать ранее сохранённые запросы. Этот подход надёжнее, но сначала запросы необходимо каким-то образом получить. Для этого всё равно потребуется публично доступный URL сервера, на который сервис сможет отправлять данные.

  • Использовать сервисы туннелирования. Они позволяют быстро открыть доступ из интернета к локальному серверу, однако при обрыве соединения во время доставки вебхука запрос может быть потерян. После восстановления соединения сервис не всегда сможет отправить его повторно.

Я столкнулся с этой проблемой при разработке собственных сервисов. Так появился Adal — сервис для получения, хранения и пересылки вебхуков.

Как работает Adal?

После создания сервера вы получаете URL вида randomstring.se1.adal.cloud. Его можно указать в любом сервисе, отправляющем вебхуки. Adal принимает и хранит входящие вебхуки точно в том виде, в котором они поступили, включая заголовки, тело запроса и другие технические сведения.

Adal хранит данные в регионе, где был создан сервер. Сейчас доступен регион в Швеции (se1), но архитектура позволяет добавлять новые регионы по мере необходимости.

После получения и сохранения вебхука в Adal вы можете:

  • Просмотреть технические сведения и метаданные запроса.

  • Изучить заголовки и параметры запроса.

  • Скачать тело запроса или просмотреть его прямо в панели управления. Сейчас встроенный предварительный просмотр доступен для JSON, а поддержка дополнительных форматов будет добавляться постепенно.

Чтобы получать вебхуки на своём устройстве, достаточно скачать и запустить Adal CLI — небольшое приложение, которое подключается к серверам Adal и пересылает входящие запросы на локальный компьютер. Версию для своей операционной системы можно скачать на странице релизов. Инструкции по получению учётных данных и настройке Adal CLI находятся в руководстве по быстрому старту.

Так вы сможете получать вебхуки на локальном компьютере, даже если он находится за межсетевым экраном или NAT. При работе с системами, зависящими от доставки вебхуков, это может сэкономить несколько часов разработки.

Вместо того чтобы открывать доступ из интернета к локальному компьютеру или использовать обходные решения, можно просто настроить сервер Adal и получать вебхуки через Adal CLI.

Входящие запросы сохраняются и доступны для просмотра в веб-панели. Их можно доставить на локальный компьютер даже после временного обрыва соединения.

Такой процесс особенно удобен при работе с вебхуками от Stripe, GitHub, Telegram, Slack и других сервисов, отправляющих HTTP-запросы на заранее заданный URL вебхука.

Если вы хотите попробовать Adal, начните с руководства по быстрому старту. Обычно настройка занимает всего несколько минут.

More from the Adal blog

Explore product updates, webhook guides, and engineering notes.

Back to blog