При разработке сервисов часто возникает необходимость получать реальные запросы от внешних систем на локальном компьютере. Это может понадобиться для отладки, тестирования или проверки изменений перед их развёртыванием в продакшене.
Какие варианты обычно используют разработчики в такой ситуации?
Использовать примеры данных из документации сервиса. Этот способ не всегда надёжен, поскольку документация может отставать от фактической реализации. Кроме того, в ней часто приводятся только минимальные примеры, а не данные из реальных запросов.
Повторно использовать ранее сохранённые запросы. Этот подход надёжнее, но сначала запросы необходимо каким-то образом получить. Для этого всё равно потребуется публично доступный 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, начните с руководства по быстрому старту. Обычно настройка занимает всего несколько минут.