Различия
Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
d24:develop:v3:backend:webhook [2024/01/24 09:47] predeinay |
d24:develop:v3:backend:webhook [2024/03/12 04:27] (текущий) predeinay |
||
---|---|---|---|
Строка 1: | Строка 1: | ||
- | Документ описывает формат обмена данными Д24 с внешней системой. | + | ====== Документ описывает формат обмена данными Д24 с внешней системой. ====== |
- | Уведомления о создании / изменении заявки отправляются массивом POST методом с данными в формате JSON. | + | |
- | В ответ на уведомление должен быть возвращен HTTP код 200, при отличном от 200 коде ответа, уведомление будет отправляться повторно. | + | Уведомления о создании / изменении заявки или оповещения отправляются объектом или (опционально) массивом POST методом с данными в формате JSON. |
+ | В ответ на уведомление должен быть возвращен HTTP код 200, при отличном от 200 коде ответа, уведомление будет отправляться повторно через "таймаут задержку". | ||
+ | "Таймаут задержка" рассчитывается по формуле log(fail_count)*backoff_interval, т.е. после первого неуспешного отправления следующие попытки будут продолжаться через 2, 12, 17, 22, 25 минут и т.д. | ||
+ | Кол-во отправок при ошибках = 300 (примерно 10 дней), после чего сработает автоматический выключатель интеграции и дальнейшие попытки отправки вебхуков будут прекращены. | ||
+ | RTT (таймаут соединения) = 1 секунда, если удаленный сервис не ответил за указанный RTT, система считает отправку неудачной. | ||
+ | |||
+ | **Авторизация** | ||
+ | * удаленный сервис принимает запрос без авторизации (например https://example.ru/webhooks/ds24) | ||
+ | * удаленный сервис принимает запрос с постоянным токеном в header любого вида (например https://example.ru/webhooks/ds24) + headers : { API-TOKEN : Bearer <любая последовательность>} | ||
+ | * удаленный сервис принимает запрос с постоянным токеном в path или query параметром (например https://example.ru/webhooks/ds24/verysecretpath?token=verysecrettoken) | ||
+ | |||
+ | |||
+ | Вариации с вебхуками | ||
+ | <code javascript> | ||
+ | { | ||
+ | "request_id": <N>, | ||
+ | "info_id": <N>, | ||
+ | "object": "<object_type>", | ||
+ | "event": "<operation>" | ||
+ | } | ||
+ | </code> | ||
+ | |||
+ | N - целое число | ||
+ | наличие request_id - событие по заявке | ||
+ | наличие info_id - событие по оповещению | ||
+ | |||
+ | object - принимает 3 вариации "feed" / "request" / "oi" (лента / заявка / оповещение) | ||
+ | event - принимает 3 вариации create / update / delete | ||
Пример запрос на удаленный сервер при создании новой заявки с ID=12313123 и изменении заявки с ID=567567 | Пример запрос на удаленный сервер при создании новой заявки с ID=12313123 и изменении заявки с ID=567567 | ||
+ | |||
<code javascript> | <code javascript> | ||
+ | // в виде массива | ||
[ | [ | ||
{ | { | ||
- | "request_id": 12313123 | + | "request_id": 12313123, |
+ | "object": "request", | ||
+ | "event": "create" | ||
}, | }, | ||
{ | { | ||
- | "request_id": 567567 | + | "request_id": 567567, |
+ | "object": "request", | ||
+ | "event": "update" | ||
} | } | ||
] | ] | ||
+ | // в виде объекта | ||
+ | { | ||
+ | "request_id": 12313123, | ||
+ | "object": "request", | ||
+ | "event": "create" | ||
+ | } | ||
+ | |||
</code> | </code> | ||
+ | При каких изменениях в заявке произойдет вызов удаленного сервера? | ||
+ | |||
+ | * - Создание новой заявки | ||
+ | * - Изменили статус | ||
+ | * - Изменили исполнителя | ||
+ | * - Изменили ответственного | ||
+ | * - Изменили описание заявки | ||
+ | * - Изменили причину обращения из справочника | ||
+ | * - Создали дочернюю заявку в РСО | ||
+ | * - Изменили срок выполнения заявки | ||
+ | * - Добавили комментарий к заявке | ||
+ | * - Добавили файл к заявке | ||
+ | |||
+ | |||
+ | * . | ||
+ | * . | ||
+ | * . | ||
+ | * . | ||
+ | * . | ||
+ | * . | ||
+ | * . | ||
+ | * . | ||
+ | * . | ||
+ | * . | ||
+ | * . | ||
+ | * . | ||
+ | * . | ||
+ | * . | ||
+ | * . | ||
+ | * . | ||
+ | * . | ||
+ | * . | ||
+ | * . | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | === Документация ниже устарела и более не поддерживается === | ||
- | **Документация ниже устарела и более не поддерживается** | ||
- | Online уведомления | + | <del>Online уведомления |
Вы можете получать моментальные уведомления о событиях в системе, таких как: | Вы можете получать моментальные уведомления о событиях в системе, таких как: | ||
Строка 204: | Строка 288: | ||
}] | }] | ||
+ | </del> |