„Webhook“ užklausų inspektorius

Įklijuokite „Webhook“ metodą, antraštes ir turinį, kad patikrintumėte užklausą ir sukurtumėte kopijuojamą bandymo komandą.

„Webhook“ užklausa
Viena antraštė eilutėje Name: reikšmės formatu.
Įklijuokite tikslų neapdorotą turinį, užfiksuotą prieš bet kokį serverio pusės analizavimą.
Paruošta. Įklijuokite užfiksuotą „Webhook“ užklausą.
Suformatuotas turinys
patikrinkite užklausą, kad pamatytumėte šią išvestį.
Parašo laukai
patikrinkite užklausą, kad pamatytumėte šią išvestį.

Parašo lauko radimas neįrodo, kad užklausa yra autentiška – tikram patvirtinimui reikalingos siuntėjo pasirašymo taisyklės, paslaptis arba raktas ir pradiniai užklausos baitai.

Vietinis cURL testas
patikrinkite užklausą, kad pamatytumėte šią išvestį.

įklijuota užklausa lieka naršyklėje. BroBroGo jo neįkelia ir neišsaugo.

DUK

Kokius „Webhook“ korpuso formatus galiu patikrinti?

JSON ir URL koduotų formų korpusai aptinkami ir suformatuojami. Kiti elementai lieka kaip paprastas tekstas, todėl įrankis neatspėja XML, kelių dalių ar dvejetainio turinio.

Ar parašo lauko radimas įrodo, kad užklausa yra autentiška?

Ne. Įrankis pateikia tik parašo ir susijusių laiko žymų antraštes. Tikram patvirtinimui reikalingos tikslios siuntėjo pasirašymo taisyklės, slaptasis arba viešasis raktas ir pradiniai užklausos baitai.

Ar šis puslapis gali gauti tiesioginį „Webhook“ atgalinį skambutį?

Ne. Įklijuokite užfiksuotą užklausą čia, kad galėtumėte patikrinti. Puslapis nesukuria viešo galutinio taško, negauna atgalinių skambučių ir nesiunčia sugeneruotos bandymo užklausos.

„Webhook“ užklausų struktūros analizė

Kuriant API sąsajas, prižiūrint integracijas ar atliekant automatizavimo darbus, itin svarbu tiksliai suprasti gaunamų „webhook“ užklausų struktūrą. Kiekviena „webhook“ užklausa susideda iš HTTP metodo, antraščių rinkinio ir neapdoroto turinio (angl. raw body). Šių elementų analizė leidžia nustatyti, kaip siuntėjas suformavo duomenis ir kokius metaduomenis jis perduoda kartu su pranešimu.

Ypatingas dėmesys turi būti skiriamas neapdorotam užklausos turiniui. Serverio pusėje veikiančios programinės sistemos dažnai automatiškai išanalizuoja ir pakeičia gautą turinį, todėl prarandama pradinė baitų seka. Norint tiksliai diagnozuoti formatavimo klaidas ar paruošti užklausą vietiniam testavimui, būtina dirbti su tiksliu neapdorotu turiniu, užfiksuotu prieš bet kokį serverio pusės apdorojimą.

Įvesties parametrai ir techniniai apribojimai

Norint patikrinti „webhook“ užklausą, įrankiui reikia pateikti tris pagrindinius komponentus, kuriems taikomos griežtos techninės taisyklės:

  • Metodas: Pasirenkamas iš pateikto sąrašo, kurį sudaro POST, PUT, PATCH, GET ir DELETE.
  • Antraštės: Įvedamos laukelyje „Antraštės“. Kiekviena antraštė turi būti pateikiama atskiroje eilutėje, naudojant formatą „Pavadinimas: vertė“. Maksimalus leidžiamas neaprašytų neapdorotų antraščių eilučių skaičius yra 200, o bendras simbolių kiekis negali viršyti 100 000 simbolių.
  • Kūnas: Tikslus neapdorotas turinys įklijuojamas laukelyje „Kūnas“. Maksimalus šio lauko ilgis yra 1 000 000 simbolių.

Jei įvesti duomenys pažeidžia šias taisykles, sistema pateikia atitinkamus pranešimus. Pavyzdžiui, viršijus apribojimus, rodoma klaida „Kūnas per ilgas šiam įrankiui. Laikykite jį iki 1 000 000 simbolių.“ arba „yra per daug antraštės eilučių. Užklausoje turi būti 200 ar mažiau antraščių.“. Jei bandoma analizuoti tuščią formą, sistema grąžina klaidą „Pirmiausia įklijuokite bent vieną antraštę arba užklausos turinį.“. Neteisingo formato antraštės eilutė iššaukia klaidą „‹line›: Antraštės eilutė neteisinga. Naudokite pavadinimą: vertė.“.

Užklausos turinio formatai ir apdorojimas

„Webhook“ siuntėjai dažniausiai naudoja JSON arba URL koduotus (angl. URL-encoded) formos duomenis. Šis įrankis automatiškai aptinka šiuos du formatus ir pateikia juos struktūrizuotu pavidalu sekcijoje „Suformatuotas turinys“. Jei užklausos kūnas yra tuščias, išvestyje rodomas užrašas „(tuščias korpusas)“. Visi kiti turinio tipai yra paliekami kaip paprastas tekstas.

Dirbant su JSON formatu, svarbu suprasti apdorojimo specifiką. Įrankis analizuoja JSON struktūrą naudodamas standartinę JSON.parse funkciją, o po to iš naujo surikiuoja elementus. Dėl šio proceso prarandami pradiniai tarpai, naujos eilutės ir pirminis laukų išsidėstymas. Jei pateiktas JSON turinys yra sugadintas, sistema parodys klaidą „Turinys atrodo kaip JSON, bet jo nepavyko išanalizuoti.“. Analogiškai, jei URL koduotame turinyje aptinkama klaidų, rodomas pranešimas „formos turinyje yra nepilnas procentinis pabėgimas.“.

Vietinis testavimas naudojant cURL

Vienas praktiškiausių būdų patikrinti, kaip jūsų vietinė aplikacija reaguoja į gaunamus „webhook“ pranešimus, yra komandinės eilutės įrankio cURL naudojimas. Šis įrankis leidžia imituoti HTTP užklausas tiesiai iš terminalo.

„Webhook“ užklausų inspektorius automatiškai sugeneruoja paruoštą cURL komandą, pritaikytą vietiniam testavimui. Ši komanda yra sugeneruojama su terminalo citavimo taisyklėmis (angl. shell-quoted) ir yra nukreipta į fiksuotą vietinį adresą http://localhost:3000/webhooks. Tai leidžia greitai nukopijuoti sugeneruotą kodą iš sekcijos „Vietinis cURL testas“ ir paleisti jį savo kompiuteryje, siunčiant identiškas antraštes bei turinį į kuriamą programą.

Parašai ir laiko žymos: tikrinimas vs. identifikavimas

Saugumas yra kritinis „webhook“ integracijų aspektas. Siuntėjai dažnai naudoja specialias antraštes, kad gavėjas galėtų įsitikinti užklausos autentiškumu. Įrankis analizuoja pateiktas antraštes ir ieško žinomų pavadinimų šablonų, tokių kaip signature, hmac, digest bei įprastų laiko žymų (angl. timestamp) pavadinimų. Surasti laukai išvedami sekcijoje „Parašo laukai“. Jei tokių antraščių nerandama, rodomas pranešimas „Nerasta bendro parašo arba „Webhook“ laiko žymos antraštės.“.

Svarbu suprasti esminį skirtumą tarp parašo identifikavimo ir jo verifikavimo:

Funkcija Ką atlieka šis įrankis Ko šis įrankis neatlieka
Identifikavimas Suranda ir išskiria parašų bei laiko žymų antraštes pagal pavadinimų šablonus. Neatlieka jokių matematinių skaičiavimų.
Verifikavimas Pateikia įspėjimą „Parašo lauko radimas neįrodo, kad užklausa yra autentiška – tikram patvirtinimui reikalingos siuntėjo pasirašymo taisyklės, paslaptis arba raktas ir pradiniai užklausos baitai.“. Neapskaičiuoja HMAC, nevykdo algoritmų, netikrina pradinių baitų, nenaudoja paslapčių, netikrina laiko lango (angl. replay window) ir neatlieka specifinių tiekėjo patvirtinimų.

Duomenų apdorojimas ir privatumas

Naudojantis šiuo įrankiu, jūsų įklijuoti duomenys yra visiškai saugūs. Visi apdorojimo procesai vyksta tiesiogiai jūsų interneto naršyklėje. Svetainė BroBroGo neperduoda, neįkelia ir neišsaugo jūsų įklijuotų užklausų, antraščių ar turinio savo serveriuose.

Dažniausiai užduodami klausimai (FAQ)

Ar šis puslapis gali gauti tiesioginį „Webhook“ atgalinį skambutį?
Ne. Įklijuokite užfiksuotą užklausą čia, kad galėtumėte patikrinti. Puslapis nesukuria viešo galutinio taško, negauna atgalinių skambučių ir nesiunčia sugeneruotos bandymo užklausos.

Kokius „Webhook“ korpuso formatus galiu patikrinti?
JSON ir URL koduotų formų korpusai aptinkami ir suformatuojami. Kiti elementai lieka kaip paprastas tekstas, todėl įrankis neatspėja XML, kelių dalių ar dvejetainio turinio.

Ar parašo lauko radimas įrodo, kad užklausa yra autentiška?
Ne. Įrankis pateikia tik parašo ir susijusių laiko žymų antraštes. Tikram patvirtinimui reikalingos tikslios siuntėjo pasirašymo taisyklės, slaptasis arba viešasis raktas ir pradiniai užklausos baitai.