Вебхуки - кращі практики

20:56 12.11.2020

Вебхуки - це HTTP-запити певної структури (зазвичай POST-запити з JSON-структурами як тіло запиту), які надсилаються клієнту при виникненні певних подій на сервері без здійснення окремої підписки клієнтом на них. Таким чином для приймаючої сторони забезпечується надсилання данних, які стосуються цієї події.

Сторона, яка відсилає вебхуки, нічого не знає про те, як їх оброблятиме сторона, яка їх приймає. Звичайною практикою при реалізації вебхуків є лише перевірка на отримання (відповідь 200) та повторна спроба доставки за певний час, якщо отримання не підтвердилося.

Загальна логіка вебхуків, яка, зазвичай, є найзручнішою для кінцевого користувача, це надсилання всіх або частини подій на єдине URL, визначене в конфігурації системи на стороні, яка надсилає вебхуки. При цьому структура даних, які відправляються вебхуком, включає назву самої події та дані, які її стосуються. Таким чином клієнт має єдину точку входу всіх вебхуків і не переймається конфігурацією багатьох точок для відправлення. На стороні сервера реалізація теж не повинна бути проблемною, так як вимагає мінімального доопрацювання в плані конфігурації.

Найбільша перевага цієї системи - це її відносно просте впровадження на стороні, яка відсилає вебхуки, адже при відправленнях вебхуків відповідь не перевіряється і фактично ніякої взаємодії між бекендом-відправником і бекендом-отримувачем не відбувається.

Додатковим плюсом цієї системи є те, що для впровадження нових функцій не потрібно нічого змінювати (окрім документації), адже вебхуки для нових подій продовжуватимуть приходити на визначену адресу в клієнта.