Webhooks
Webhooks позволяют получать обновления от Meshy в реальном времени, когда ваши API-задачи завершаются или меняют статус. После настройки Meshy будет отправлять POST-запросы с полезной нагрузкой событий в формате json на указанные вами URL.
Зачем создавать Webhooks
Использование webhooks имеет несколько преимуществ, особенно в отношении автоматической проверки статусов API-задач. Webhooks требуют меньше усилий и затрат, чем постоянный опрос API для получения обновлений статуса задач. Webhooks также обеспечивают обновления практически в реальном времени и в конечном итоге лучше масштабируются, чем опрос API. Это также позволяет лучше управлять лимитами скорости запросов, особенно если вы выполняете постоянный опрос.
Настройка и конфигурация
Чтобы включить webhooks, откройте страницу Webhooks в Developer Platform и нажмите кнопку "Create Webhook". Укажите желаемый https URL для получения webhooks и включите webhook для автоматического получения обновлений задач от Meshy. Вы можете иметь максимум 5 активных webhooks на один аккаунт Meshy. Когда webhook включён, все обновления статусов API-задач будут автоматически отправляться на URL полезной нагрузки. В целях безопасности в настоящее время мы разрешаем отправку webhooks только на https URL. Если вы хотите настроить локальное тестирование, см. следующий раздел.
Требования к доставке Webhook
Чтобы ваш webhook функционировал нормально и продолжал получать события:
- Ваш сервер должен отвечать кодом состояния HTTP ниже 400 (например,
200 OK,202 Accepted). - Любой ответ с кодом состояния
>= 400будет считаться неудачной доставкой. - Несколько последовательных сбоев могут:
- Привести к задержке обновлений progress или их получению в неправильном порядке
- Автоматически отключить ваш webhook после повторных попыток (см. политику автоматического отключения)
Совет: Всегда возвращайте успешный ответ после проверки и сохранения полезной нагрузки webhook, даже если дальнейшая обработка происходит асинхронно.
Перенаправление Webhooks для локального тестирования
Если вы хотите протестировать код своего webhook локально, что обычно происходит по http-адресу, вы можете использовать URL прокси вебхука для перенаправления webhooks на ваш компьютер или codespace. Ниже приведены рекомендуемые шаги с использованием smee.io, но вы можете использовать любой сервис для генерации URL прокси вебхука.
Получение URL прокси вебхука:
- В браузере перейдите на https://smee.io/
- Нажмите "Start a new channel"
- Скопируйте полный URL под "Webhook Proxy URL". Вы будете использовать этот URL на следующих шагах настройки.
Перенаправление webhooks:
- Если у вас ещё не установлен smee-client, выполните следующую команду в терминале.
npm install --global smee-client
- Чтобы получать перенаправленные webhooks с smee.io, выполните следующую команду в терминале. Замените
WEBHOOK_PROXY_URLна ваш URL прокси вебхука, полученный ранее.
smee --url WEBHOOK_PROXY_URL --path /webhook --port 3000
Вы должны увидеть вывод, похожий на этот, где WEBHOOK_PROXY_URL — это ваш URL прокси вебхука:
Forwarding WEBHOOK_PROXY_URL to http://127.0.0.1:3000/webhook
Connected WEBHOOK_PROXY_URL
- Оставьте это работать, пока вы тестируете свой webhook. Когда захотите остановить перенаправление webhooks, нажмите Ctrl+C.
Обратите внимание, что путь — /webhook, а порт — 3000. Эти значения могут пригодиться, когда вы захотите настроить собственный код для получения доставок webhook в дальнейшем.
Создание webhook:
Теперь вы можете использовать URL прокси вебхука для создания нового webhook на странице Webhooks.
Пример ответа
Когда статус задачи изменяется, Meshy отправит POST-запрос с полезной нагрузкой webhook на настроенный вами URL. Полезная нагрузка содержит объект задачи в формате JSON. Полное описание всех свойств объекта задачи и примеры полезной нагрузки см. здесь: