Gdy tworzymy różnego rodzaju oprogramowanie, to w pewnym momencie będziemy chcieli integrować się z innymi (zewnętrznymi) systemami czy też API. Możemy też być tak, że to nasz system musi być zdolny do otrzymania jakiejś informacji (powiadomienia) np. ze sklepu o nowym zamówieniu czy o nowym e-mailu. I tu właśnie pojawiają się webhooki.
Pojęcie webhooków będę starał się opisać bardzo prostym językiem. Mam nadzieję, że dzięki temu termin ten będzie zrozumiały dla wielu osób (nawet tych nie technicznych).
Co to są te webhooki?
Webhooki to nic innego jak pewnego rodzaju powiadomienia wysyłane z jednego systemu do drugiego. Komunikacja ta odbywa się poprzez zwykłe połączenie HTTP(S)
zazwyczaj metodą POST
aby przesłać dodatkowe informacje (szczegóły).
Najważniejszą rzeczą w tej całej układance jest fakt, że te powiadomienia (webhook) są uruchamiane po jakiejś akcji. Taką akcją może być na przykład:
- złożenie zamówienia sklepie internetowym,
- otrzymania nowego e-maila,
- komentarz na blogu,
- nowy follower na platformie społecznościowej.
Jak widzicie możliwości uruchomienia tego jest bardzo dużo. Można tutaj zauważyć pewną analogię do zwykłych powiadomień na swoim smartfonie gdy dostajemy powiadomienie o SMS, lajku czy wiadomości na Messengerze.
Ciekawostka. Termin „web hooks” po raz pierwszy pojawił się na, nieistniejącym już, blogu Jeffa Lindsaya pt. „Web hooks to revolutionize the web”. W tym wpisie omówił właśnie pojęcie webhooków. Posłużył się tutaj analogią do systemów UNIX, w których tworzyło się proste skrypty do wykonywania konkretnych zadań.
Webhooki powinny się nam kojarzyć z automatyzacją.
Stąd też zdjęcie ilustracyjne wykonane za pomocą copilota Microsoftu. Papierowe samolociki reprezentują webhooki zaś paczki, to informacja przekazywana dalej za ich pomocą.
Do czego używać webhooki? Czyli praktyczne przykłady
Skoro wiemy już czym są i jak działają webhooki, to aby mieć jeszcze większe pojęcie o nich, to trzeba by podać bardziej szczegółowe przykłady.
- Możemy stworzyć webhooka, który będzie tworzył transkrypcję z audio i publikował treść w jakimś medium społecznościowym. Flow w takim przypadku wyglądałoby następująco:
wysłanie pliku do webhooka
→transkrypcja
→dalsze przetworzenie tekstu
(inny webhook). - Webhooki wykorzystuje WordPress. Można tworzyć specjalne akcje na dodanie komentarza.
- E-commerce. Dobrym przypadłem będzie integracja procesu zakupowego. Po opłaceniu zamówienia (mając jego
ID
) możemy wysłać fakturę, wysłać maila ze statusem zamówienia, wysłać powiadomienie do magazynu by przygotować paczkę. - Programowanie. Wielu programistów może kojarzyć webhooki, który są często wykorzystane przez takie narzędzia jak JIRA, GitHub, bitbucket. Tam jest ich potężna ilość. Niemal na każde zdarzenie można się podpiąć.
W przypadku e-commerce jest największe pole do popisu, bo webhookiem może być każda zewnętrzna integracja czy proces w poprawnym funkcjonowaniu sklepu.
Warto dodać w tym miejscu, że webhook może komunikować się z innym webhookiem.