Webhooks: подключение и использование
Webhooks — уведомление сторонних приложений посредством отправки уведомлений о событиях, произошедших на платформе обучение.
Список возможных типов вебхуков:
- CourseStat - статистика по курсу;
- SectionStat - статистика по разделу курса;
- QuizStat - статистика по тесту в курсе
- TaskStat - статистика по заданию в курсе
- ScormStat - статистика по SCORM заданию в курсе
- MaterialStat - статистика по материалу в курсе
Подписываться на все события необязательно, можно на несколько или одно. URL можно указать для каждой сущности отдельно.
Для подключения нужно обратиться в техническую поддержку, написав на адрес эл. почты help@teachbase.ru письмо с просьбой подключения Webhook в свободной форме, при этом укажите:
- Какой тип веб-хуков подключить: CourseStat, SectionStat и т.д;
- Куда подключить веб-хук: id курса, id теста и т.д. Либо, можем подключить ко всем объектам сразу - уточните, если требуется;
- Какой URL указать для каждого из типов веб-хуков, которые планируете подключить.
Webhook отправляет на стороннее приложение POST переменную, которая содержит массив вида {“entity”:{“action”:{массив полей сущности}}}
. После создания новой сущности будет приходить POST запрос на указанный эндопнт(ы) вида:
{
"type": "course_stat",
"event": "created",
"data": {
// Набор аттрибутов аналогичный набору, <a href="https://go.teachbase.ru/api-docs/index.html#/course\_stat/get\_course\_stats\_\_course\_stat\_id\_" target="\_blank" rel="noopener">передаваемому в Endpoint API</a>
// для этой сущности
}
}
После обновления сущности будет приходить POST запрос на указанный эндопнт(ы) вида:
{
"type": "section_stat",
"event": "updated",
"data": {
// Набор аттрибутов аналогичный набору, <a href="https://go.teachbase.ru/api-docs/index.html#/section%20stats/get\_courses\_\_course\_id\_\_section\_stats\_\_section\_stat\_id\_" target="\_blank" rel="noopener">передаваемому в Endpoint API</a>
// для этой сущности
}
}
В качестве ответа на запрос мы со своей стороны ожидаем получить 200 статус вне зависимости от возможности обработать отправляемые данные. В случае если мы получим 400-е, 500-е статусы мы сделаем повторную отправку (до 5 раз в течение 2-х минут) на случай перезагрузки оборудования и иных временных причин. Можно сказать, что статус ответа служит для подтверждения работоспособности канала передачи и правильно указанных эндпоинтах, но не для информирования о валидности получаемых данных.