| Termin | Definicja |
|---|---|
| brak wersjonowania webhooka | Brak wersjonowania webhooka to usterka, w której powiadomienie HTTP nie precyzuje wersji formatu przesyłanych danych. Na czym polega brak wersjonowania webhookaWebhook jest mechanizmem, w którym jedna aplikacja wysyła żądanie HTTP do adresu należącego do innego systemu po wystąpieniu określonego zdarzenia. Przesyłane żądanie zawiera zwykle dane w formacie JSON, nagłówki HTTP oraz informacje pozwalające odbiorcy rozpoznać typ zdarzenia. Brak wersjonowania webhooka oznacza, że format tego komunikatu nie ma jednoznacznego oznaczenia wersji. Odbiorca nie wie wtedy, czy otrzymane pola, ich typy, nazwy i znaczenie odpowiadają wcześniejszej, aktualnej czy zmienionej definicji zdarzenia. Wersja może być przekazywana w adresie endpointu, na przykład w ścieżce zawierającej oznaczenie wersji, w nagłówku HTTP albo w polu umieszczonym w treści komunikatu. Sam sposób zapisu zależy od konkretnej aplikacji, ale cel pozostaje ten sam: nadawca i odbiorca muszą mieć wspólny kontrakt danych. Bez takiego oznaczenia zmiana struktury JSON może zostać odebrana jako zwykły komunikat, mimo że program po stronie odbiorczej interpretuje go według nieaktualnych założeń. Skutki zmiany struktury komunikatu bez kontraktuNajczęstszy problem pojawia się wtedy, gdy nadawca zmienia nazwę pola, usuwa pole albo zaczyna przesyłać wartość w innym typie. Przykładowo odbiorca może oczekiwać pola Brak wersjonowania utrudnia także wdrażanie zmian etapami. Odbiorca nie może bezpiecznie przygotować obsługi nowego formatu i równocześnie zachować zgodności ze starym, jeżeli nie ma informacji, z którym wariantem ma do czynienia. Może to prowadzić do odrzucania poprawnych powiadomień, wielokrotnych prób dostarczenia tego samego zdarzenia albo rozbieżności między stanem systemu źródłowego i systemu odbierającego. Problem może dotyczyć również dokumentacji, testów integracyjnych, monitoringu i analizy logów, ponieważ sama treść żądania nie wystarcza do ustalenia, jaki kontrakt obowiązywał w chwili wysłania danych. Rozpoznawanie problemu w żądaniach HTTPDiagnozę należy rozpocząć od porównania dokumentacji webhooka z rzeczywistymi żądaniami zapisanymi po stronie odbiorcy. Sprawdza się metodę HTTP, adres endpointu, nagłówki, kod odpowiedzi oraz pełną strukturę treści JSON. Istotne jest ustalenie, czy wersja jest obecna w adresie, na przykład jako fragment ścieżki, albo w nagłówku opisującym typ mediów i wariant formatu. Należy również porównać komunikaty pochodzące z różnych okresów, ponieważ brak jawnej wersji często ujawnia się dopiero po aktualizacji aplikacji nadawczej. W logach warto odnotować nazwę zdarzenia, identyfikator dostarczenia, czas odebrania, rozpoznane pola oraz wynik walidacji schematu. Sam kod odpowiedzi HTTP nie zawsze wskazuje na brak wersjonowania. Odpowiedź Bezpieczne uporządkowanie integracji webhookowejNaprawa polega na ustaleniu jawnego kontraktu danych i przypisaniu mu wersji. W praktyce może to oznaczać wprowadzenie osobnych endpointów dla kolejnych wersji, dodanie wersji do nagłówka albo określenie jej w schemacie komunikatu. Odbiorca powinien sprawdzać wersję przed rozpoczęciem przetwarzania, odrzucać nieobsługiwany wariant w sposób możliwy do zdiagnozowania oraz rejestrować przyczynę odrzucenia. Zmiany kompatybilne, takie jak dodanie opcjonalnego pola, również wymagają opisania w dokumentacji, aby odbiorca nie uzależniał działania od przypadkowego zachowania nadawcy. Warszawskie Pogotowie Komputerowe wykonuje profesjonalną naprawę laptopów, komputerów PC i podzespołów, a w przypadku problemów z integracją na komputerze użytkownika można sprawdzić działanie aplikacji, konfigurację połączenia HTTP, logi oraz sposób przekazywania danych. Weryfikacja powinna obejmować także ponowienie dostarczenia, obsługę duplikatów i zachowanie aplikacji po otrzymaniu nieznanej wersji komunikatu. Dzięki temu problem nie ogranicza się do jednorazowej korekty, lecz zostaje powiązany z konkretnym kontraktem, procedurą testową i informacją diagnostyczną potrzebną przy kolejnych zmianach. |