Разбирање на структурата на барањата за веб-куки
Веб-куките (webhooks) претставуваат автоматизирани пораки што се испраќаат од една апликација до друга кога ќе се случи одреден настан. За разлика од стандардните API повици каде што вашиот систем бара податоци, кај веб-куките надворешниот систем испраќа HTTP барање до вашата крајна точка. За успешно интегрирање и обработка на овие известувања, од клучно значење е прецизно да се разбере структурата на дојдовното барање.
Секое барање се состои од три клучни елементи: HTTP метод, заглавија (headers) и тело на барањето (body). Анализата на овие компоненти овозможува правилно конфигурирање на серверот кој ги прифаќа податоците, спречувајќи грешки при парсирањето и обработката на содржината.
Улогата на заглавијата во комуникацијата на веб-куките
Заглавијата во HTTP барањето пренесуваат метаподатоци кои се неопходни за правилно толкување на пратката. Тие му кажуваат на серверот примач како да го обработи телото на пораката и како да ја потврди автентичноста на испраќачот.
- Content-Type: Го дефинира медиумскиот тип на ресурсот. Најчесто кај веб-куките се користи
application/jsonилиapplication/x-www-form-urlencoded. - Заглавија за безбедност: Многу провајдери испраќаат криптографски потписи и временски печати (timestamps) за да овозможат верификација на испраќачот. Овие заглавија често содржат зборови како
signature,hmacилиdigest.
Алатката автоматски ги идентификува овие специфични заглавија за потпис и временски печат за да ви помогне брзо да ги лоцирате безбедносните параметри во снименото барање.
Формати на телото на веб-куката
Телото на веб-куката ги содржи вистинските податоци за настанот што се случил. Најчесто се среќаваат два формати:
- JSON: Најраспространет формат каде податоците се структурирани во парови на клуч-вредност. При инспекција, JSON телата се анализираат со помош на
JSON.parseи се реорганизираат, што значи дека оригиналните празни места и распоредот на полињата се губат при форматирањето. - URL-encoded: Податоци од форма каде вредностите се кодираат во низа од парови споени со знакот
&.
Доколку телото на барањето е празно, алатката го прикажува излезот "(празно тело)". Сите останати формати на тела кои не се JSON или URL-encoded се прикажуваат како обичен текст.
Инспекција наспроти верификација на автентичност
Важно е да се направи јасна разлика помеѓу инспекција на заглавијата за потпис и нивна вистинска верификација.
Алатката ги идентификува полињата за потпис и временски печат врз основа на текстуални шаблони во нивните имиња. Сепак, пронаоѓањето на поле за потпис не докажува дека барањето е автентично — за вистинска проверка потребни се правилата за потпишување на испраќачот, тајната или клучот и оригиналните бајти од барањето. Алатката не пресметува HMAC, не извршува криптографски алгоритми, не ги споредува оригиналните бајти на содржината, ниту пак проверува временски прозорци за заштита од повторени напади (replay attacks).
Локално тестирање со cURL
Откако ќе го прегледате и форматирате барањето, следен чекор во развојот е негово локално тестирање. Алатката автоматски генерира подготвена cURL команда во форма на заштитен шел-код (shell-quoted).
Оваа команда е фиксирана да таргетира локална адреса:
http://localhost:3000/webhooks
Со копирање и извршување на оваа команда во вашиот терминал, можете директно да го реплицирате идентичното барање на веб-куката кон вашата локална апликација во развој, без потреба постојано да предизвикувате реални настани од надворешниот систем.
Правила за внесување податоци и ограничувања
За да се обезбеди правилно функционирање на инспекторот, внесените податоци мора да ги почитуваат следните технички граници и правила:
| Влезно поле | Правило / Ограничување |
|---|---|
| Метод | Избор од дефинирана листа: POST, PUT, PATCH, GET, DELETE. |
| Заглавија | Едно заглавие по линија во формат "Име: вредност". Максимум 200 непразни линии и најмногу 100.000 знаци. |
| Тело | Точното необработено тело снимено пред какво било парсирање од страна на серверот. Максимум 1.000.000 знаци. |
Доколку се надминат овие лимити или се внесат невалидни податоци, алатката ќе прикаже соодветна порака за грешка. На пример, ако се внесе невалиден JSON, ќе се појави грешката: "Телото изгледа како JSON, но не може да се анализира.". Доколку линијата за заглавие е погрешно напишана, ќе се прикаже: "‹line›: Линијата за заглавие е неважечка. Користете Име: вредност.".
Приватност и обработка на податоците
Вашето залепено барање останува во вашиот прелистувач. BroBroGo не го прикачува или зачувува. Сите операции за парсирање, форматирање и генерирање на cURL командата се извршуваат локално на вашиот уред.
Често поставувани прашања
Дали оваа страница може да добие повратен повик за веб-кука во живо?
Не. Залепете фатено барање овде за проверка. Страницата не создава јавна крајна точка, не прима повратни повици или не испраќа генерирано барање за тестирање.
Кои формати на телото на веб-кука можам да ги прегледам?
JSON и телата на формулари шифрирани со URL се откриени и форматирани. Другите тела остануваат како обичен текст, така што алатката не погодува XML, повеќеделни или бинарни содржини.
Дали наоѓањето поле за потпис докажува дека барањето е автентично?
Не. Алатката покажува само потпис и сродни заглавија на временскиот печат. За вистинската потврда потребни се точните правила за потпишување на испраќачот, таен или јавен клуч и бајтите на оригиналното барање.