Обзор
Вместо того чтобы многократно опрашиватьGET /jobs/{id}, вы можете указать URL webhook’а и получать POST-запрос, когда ваше задание завершается. Это эффективнее и уменьшает количество ненужных вызовов API.
Использование webhooks
Добавьте заголовокX-Webhook-URL к любому запросу на генерацию. Когда задание достигнет терминального состояния (completed, failed или cancelled), API отправит POST-запрос на ваш URL с полными данными задания.
Тело webhook-запроса
Когда задание завершится, ваш URL webhook’а получит POST-запрос с данными задания:Лучшие практики
Отвечайте быстро — быстро возвращайте код состояния 2xx. При необходимости обрабатывайте данные webhook’а асинхронно.
- Используйте HTTPS-эндпоинты для безопасности
- Реализуйте идемпотентность на случай повторной доставки
- Логируйте получение webhook’ов для отладки
Webhooks против опроса
| Подход | Плюсы | Минусы |
|---|---|---|
| Webhooks | Уведомления в реальном времени, меньше вызовов API | Нужен публичный эндпоинт |
| Опрос | Работает везде, сервер не нужен | Больше вызовов API, небольшая задержка |
Следующие шаги
Жизненный цикл задания
Узнайте о состояниях заданий и опросе статуса
Примеры кода
Полные примеры с обработкой webhook’ов