Вебхуки для Data Management API - пример на NodeJS
Пример находится здесь: API Webhooks был анонсирован во время Forge DevCon 2017!
Для чего это нужно? Webhook, реализованные другими поставщиками веб-служб, позволяют настроить уведомление, которое вызовет конечные точки в вашем приложении. Для Data Management API ваше приложение может зарегистрировать конечную точку (например, http://yourapp.com/api/forge/hook/callback, будучи полностью описательным), который будет вызываться Autodesk Forge при возникновении события. В этом случае - когда файл или папка добавляются, изменяются, удаляются и т. д.
Хотите увидеть его в действии? Вот видеоролик или попробуйте его в прямом эфире bim360notifier.autodesk.io. В этом примере используется Twilio APIдля SMS-уведомлений, Postmark API для электронной почты, а также отправка уведомлений Slack.
Теперь давайте разобраться в коде. Полный исходный код доступен на этом репозитории GitHub , но относящаяся к делу часть в файле hook.js. Вот некоторые основные моменты:
- Приложение должно принимать внешние подключения. Forge вызовет ваше приложение, поэтому оно должно быть живым или вам нужно направлять вызовы в среду localhost. Ngrok является хорошим инструментом для разработки localhost. В примере укажите URL-адрес через переменную среды FORGE_HOOK_CALLBACK_HOST .
- Приложение может создавать веб-хуки для всех событий одновременно или по одному для каждого события. Это примерное приложение создает один веб-хук для каждого события, так как пользовательский интерфейс позволяет пользователю выбрать какое событие использовать для создания уведомления.
- События не могут быть дублированы. Чтобы обновить уведомлений, этот пример удаляет все события и создает их снова (при обновлении). Для поддрежания этой асинхронной операции удаления, вам может понадобиться nmp пакет async (или что-то подобное).
Наконец, самый важный совет: каждое событие может иметь атрибуты, которые сохраняются с помощью вебхука и возвращаются в обратном вызове. В этом примере атрибут хранит номер телефона, адрес электронной почты и канал Slack для уведомления, поэтому приложение ничего не хранит. Когда происходит обратный вызов, приложение считывает эту информацию и отправляет уведомления. В зависимости от вашего сценария, например, вам нужен доступ к файлу, атрибут веб-хука дожен сохранить Project ID.
У вас есть вопросы? Пост на stackoverflow с autodesk-datamanagement.
Источник: https://forge.autodesk.com/blog/enable-https-local-nodejs
Обсуждение: http://adn-cis.org/forum/index.php?topic=8223
Опубликовано 26.12.2017