Webhook хүсэлтийн бүтэц ба түүнийг шалгах ач холбогдол
Webhook буюу вэб дэгээ нь систем хооронд бодит хугацаанд өгөгдөл дамжуулах үндсэн механизм юм. Илгээгч системээс ирж буй HTTP хүсэлтийг хүлээн авч боловсруулахын тулд түүний бүтэц, толгой мэдээлэл (headers) болон их бие (body)-ийн форматыг нарийн тодорхойлох шаардлагатай байдаг.
Вэб дэгээний хүсэлтийг хүлээн авагч талд серверээр задлан шинжлэхээс өмнө түүхий (raw) байдлаар нь барьж авах нь алдааг оношлоход чухал ач холбогдолтой. Хүсэлтийн бүтэц дэх Content-Type толгой болон их биеийн формат хоорондоо тохирч байгаа эсэх, шаардлагатай гарын үсгийн мэдээллүүд дамжиж байгаа эсэхийг шалгаснаар интеграцчлалын явцад гардаг нийтлэг алдаанаас сэргийлж чадна.
Оролтын өгөгдөлд тавигдах шаардлага ба хязгаарлалт
"Webhook хүсэлтийн байцаагч" хэрэгслийг ашиглахын тулд дараах оролтын өгөгдлийг бэлтгэж оруулна:
- Арга: Хүсэлтийн HTTP аргыг сонгоно. Сонголтод POST, PUT, PATCH, GET, DELETE аргууд багтана.
- Гарчиг: Хүсэлтийн толгой мэдээллийг оруулах бөгөөд мөр бүрт "Нэр: утга" (Name: value) форматаар нэг толгойг бичнэ. Оролтод хамгийн ихдээ хоосон биш 200 толгойн мөр зөвшөөрөгдөх бөгөөд нийт тэмдэгтийн хязгаар нь 100,000 тэмдэгт байна.
- Их бие (Body): Сервер талд ямар нэгэн задлан шинжилгээ хийхээс өмнө барьж авсан түүхий их биеийг яг таг хуулж оруулна. Их биеийн дээд хязгаар нь 1,000,000 тэмдэгт байна.
Гаралтын мэдээллийн бүтэц
Оролтын өгөгдлийг оруулж "Хүсэлтийг шалгах" товчийг дарснаар дараах гаралтын мэдээллүүд үүснэ:
- Форматлагдсан бие: Хэрэв хүсэлтийн их бие нь JSON эсвэл URL-encoded (маягтын өгөгдөл) форматтай бол түүнийг уншихад хялбар байдлаар хэлбэржүүлж харуулна. Хэрэв их бие хоосон бол "(хоосон их бие)" гэж харагдана.
- Гарын үсэг зурах талбарууд: Хүсэлтийн толгой хэсгээс нийтлэг гарын үсэг (signature) болон цагийн тэмдэг (timestamp)-ийн толгойнуудыг хайж жагсаана. Хэрэв ийм төрлийн толгой олдохгүй бол "Нийтлэг гарын үсэг эсвэл вэб дэгээний цагийн тэмдэг олдсонгүй." гэсэн бичиг гарна.
- Орон нутгийн cURL тест: Орон нутгийн орчинд туршилт хийхэд зориулж
http://localhost:3000/webhooksхаяг руу чиглэсэн, бүрэн бэлтгэгдсэн cURL командыг үүсгэж өгөх бөгөөд үүнийг шууд хуулбарлан ашиглах боломжтой.
Боловсруулалтын дүрэм ба онцгой тохиолдлууд
Хэрэгсэл нь өгөгдлийг боловсруулахдаа дараах дүрмүүдийг баримталдаг:
- Их биеийг хэлбэржүүлэх: Зөвхөн JSON болон URL-encoded форматыг таньж хэлбэржүүлнэ. Бусад төрлийн их биеийг энгийн текст хэлбэрээр хэвээр үлдээдэг. JSON их биеийг хэлбэржүүлэхдээ
JSON.parseашиглан задлан шинжилж, дараа нь талбаруудыг дахин эрэмбэлдэг тул анхны хоосон зай (whitespace) болон талбаруудын байршил өөрчлөгддөг. - Гарын үсэг илрүүлэх: Хэрэгсэл нь толгойн нэрсээс
signature,hmac,digestболон нийтлэг цагийн тэмдгийн түлхүүр үгсийг хайж илрүүлдэг. Энэ нь зөвхөн нэрээр нь шүүж харуулах үйлдэл бөгөөд HMAC тооцоолол хийхгүй, алгоритмыг шалгахгүй, анхны байтуудыг харьцуулахгүй, нууц түлхүүр болон replay window-ийг баталгаажуулахгүй. - cURL команд: Үүсгэгдэх cURL команд нь зөвхөн
http://localhost:3000/webhooksгэсэн тогтмол хаяг руу чиглэнэ.
Алдааны мэдэгдлүүд
Оролтын өгөгдөл шаардлага хангахгүй эсвэл формат буруу тохиолдолд дараах алдааны мэдэгдлүүд гарна:
- Оролт хоосон байвал: "Эхлээд дор хаяж нэг толгой хэсэг эсвэл хүсэлтийн хэсгийг буулгана уу."
- Толгойн тэмдэгт хэтэрвэл: "Гарчиг нь энэ хэрэгсэлд хэтэрхий урт байна. Холбоогүй эсвэл давтагдсан утгыг устгана уу."
- Их биеийн тэмдэгт хэтэрвэл: "Энэ хэрэгсэлд бие нь хэтэрхий урт байна. Үүнийг 1,000,000 тэмдэгтээс бага байлгах."
- Толгойн мөр 200-аас давбал: "Хэт олон толгойн мөр байна. Хүсэлтийг 200 толгой буюу түүнээс бага байлгах."
- Толгойн мөр буруу форматтай байвал: "
‹line›: толгойн мөр буруу байна. Нэр ашиглах: утга." - JSON задлахад алдаа гарвал: "Их бие нь JSON шиг харагдаж байгаа ч задлан шинжилж чадсангүй."
- URL-encoded формат буруу байвал: "Маягтын үндсэн хэсэг нь бүрэн бус зугталттай байна."
Нууцлал ба өгөгдөл боловсруулалт
Хэрэглэгчийн нууцлалыг хадгалах үүднээс таны буулгасан хүсэлт таны хөтөч дээр үлдэнэ. BroBroGo үүнийг сервер рүү байршуулж, хадгалдаггүй. Бүх боловсруулалт хэрэглэгчийн хөтөч дотор локал байдлаар хийгддэг.
Түгээмэл асуултууд (FAQ)
Энэ хуудас шууд webhook-ийн дуудлагыг хүлээн авч чадах уу? Үгүй. Баригдсан хүсэлтийг шалгахын тулд энд буулгана уу. Энэ хуудас нь нийтийн төгсгөлийн цэг үүсгэхгүй, буцаан дуудлага хүлээн авах эсвэл үүсгэсэн тестийн хүсэлтийг илгээдэггүй.
Би ямар вэб дэгээний үндсэн форматыг шалгаж болох вэ? JSON болон URL-кодлогдсон маягтын биетүүдийг илрүүлж, форматласан. Бусад биетүүд нь энгийн текст хэлбэрээр үлддэг тул хэрэгсэл нь XML, олон хэсэг эсвэл хоёртын контентыг тааварлахгүй.
Гарын үсэг зурах талбар олдсон нь хүсэлтийг жинхэнэ гэдгийг батлах уу? Үгүй. Энэ хэрэгсэл нь зөвхөн гарын үсэг болон холбогдох цагийн тэмдгийн толгой хэсгийг харуулдаг. Бодит баталгаажуулалтад илгээгчийн гарын үсэг зурах дүрэм, нууц эсвэл нийтийн түлхүүр, анхны хүсэлтийн байт шаардлагатай. Гарын үсгийн талбар байгаа нь хүсэлт үнэн зөв болохыг батлахгүй — бодит баталгаажуулалтад илгээгчийн гарын үсэг зурах журам, нууц эсвэл түлхүүр болон анхны хүсэлтийн байтууд шаардлагатай.