درک وب هوک: راهنمای فروتن برای توسعه دهندگان

این را تصور کنید: برنامه Walmart را دانلود میکنید، یک جعبه شکلات 24 دلاری Lindt و یک نوار Feastables 2.50 دلاری به سبد خرید خود اضافه میکنید، به تسویهحساب میروید و 0.50 دلار هزینه اضافی را مشاهده میکنید.
مجموع شما به 27 دلار می رسد.
شما جزئیات صورتحساب خود را اضافه میکنید، چه کارت اعتباری یا PayPal، و دکمه «سفارش» را بزنید.
آنچه در پشت صحنه اتفاق می افتد را در اینجا مشاهده می کنید:
- این برنامه به پشتیبان میگوید: “هی، ما یک سفارش به قیمت 27 دلار داریم.”
- پشتیبان اطلاعات را به سرویس پرداخت ارسال می کند (این می تواند سیستم داخلی Walmart یا یک ارائه دهنده خارجی مانند PayPal باشد).
- سرویس پرداخت، پرداخت را پردازش میکند و با شناسه سفارش و تأیید به پشتیبان پاسخ میدهد.
- پشتیبان این شناسه سفارش را به برنامه بازگرداند.
- برنامه صفحه پرداخت را به شما نشان می دهد و شما پرداخت خود را تکمیل می کنید.
اکنون، شما به عنوان کاربر میدانید که پرداخت انجام شده است، و همینطور frontend (برنامه).
اما پیچ و خم اینجاست: باطن هنوز نمی داند.
اینجاست که وب هوک ها وارد می شوند تا روز را نجات دهند.
وب هوک ها چیست؟
Webhooks که با نامهای Web Callback، HTTP Push API یا Reverse API نیز شناخته میشود، راهی برای یک برنامه کاربردی برای ارسال دادههای بلادرنگ به دیگری در هنگام وقوع یک رویداد خاص است.
برخلاف APIهای سنتی که از شما میخواهند برای دریافت داده درخواست بدهید، وبهوکها بهمحض در دسترس قرار گرفتن دادهها را بهطور خودکار برای شما ارسال میکنند.
آنها مانند داشتن دوستی هستند که به محض دریافت خبری با شما تماس می گیرد، به جای اینکه شما مدام از آنها بپرسید.
چگونه وب هوک ها در مثال ما کار می کنند
بیایید مثال Walmart خود را دوباره مرور کنیم.
پس از تکمیل پرداخت، ارائهدهنده پرداخت (به عنوان مثال، PayPal) از یک هوک برای اطلاع رسانی به پشتیبان Walmart استفاده میکند:
- ارائهدهنده پرداخت یک درخواست POST به باطن Walmart ارسال میکند و میگوید: «هی، پرداخت برای سفارش ID #12345 با موفقیت انجام شد. این شناسه پرداخت به عنوان مدرک است.»
- باطن والمارت این تأییدیه را دریافت می کند و سوابق خود را به روز می کند.
- اکنون که باطن میداند پرداخت کامل شده است، میتواند مراحل بعدی را آغاز کند، مانند شروع تحویل یا ارسال یک ایمیل تأیید برای شما.
بدون این وب هوک، تنها دو گزینه وجود دارد:
- باطن میتواند بارها و بارها از API ارائهدهنده پرداخت برای وضعیت پرداخت نظرسنجی کند، که بسیار ناکارآمد و نیازمند منابع است.
- فرانتاند میتواند سیگنالی را با شناسه پرداخت به پشتیبان ارسال کند تا بررسی وضعیت را راهاندازی کند، اما این رویکرد غیرقابل اعتماد است – به خصوص اگر کاربر برنامه را ببندد یا اتصال را قطع کند.
استفاده از وب هوک این ناکارآمدی ها را از بین می برد و ارتباط یکپارچه را تضمین می کند.
Webhooks در مقابل API ها: تفاوت چیست؟
- API ها: شما (مشتری) در صورت نیاز داده ها را درخواست می کنید. به آن به عنوان کشیدن داده فکر کنید.
- وب هوک ها: هنگامی که رویدادی رخ می دهد، سرور داده ها را به طور خودکار برای شما ارسال می کند. آن را به عنوان داده های فشار وارد کنید.
هر دو موارد استفاده خود را دارند، اما وبکهوکها بهویژه برای بهروزرسانیهای همزمان، مانند تأیید پرداخت، تغییر وضعیت حملونقل، یا اعلانها مفید هستند.
چرا وب هوک ها عالی هستند
- به روز رسانی در زمان واقعی: لازم نیست منتظر بمانید یا به صورت دستی برای به روز رسانی ها بررسی کنید.
- کارایی: برای بررسی وضعیت یک رویداد نیازی به تماس های مکرر API نیست.
- اتوماسیون: آنها گردش کار یکپارچه بین برنامه ها را فعال می کنند.
در مورد APIها، من روی یک ابزار فوق العاده راحت به نام LiveAPI کار کرده ام.
این طراحی شده است تا اسناد API را برای توسعه دهندگان بدون دردسر کند.
با LiveAPI، می توانید به سرعت اسناد API تعاملی ایجاد کنید که به کاربران اجازه می دهد API ها را مستقیماً از مرورگر اجرا کنند.
اگر از ایجاد دستی اسناد برای API های خود خسته شده اید، این ابزار ممکن است زندگی شما را آسان تر کند.
در اینجا یک ویدیوی کوتاه درباره نحوه شروع ما با LiveAPI آمده است: در YouTube تماشا کنید.
بسته بندی
Webhooks یک مفهوم ساده و در عین حال قدرتمند است که می تواند نحوه ارتباط برنامه ها را تغییر دهد.
چه با پرداختها، اعلانها یا بهروزرسانیهای همزمان سروکار داشته باشید، وبکهوکها میتوانند به شما در ایجاد گردش کار خودکار و کارآمد کمک کنند.
اگر برای غواصی در وب هوک ها مردد بوده اید، از کوچک شروع کنید.
وب هوک درگاه پرداخت را آزمایش کنید یا یک وب هوک ساده برای یک پروژه راه اندازی کنید.
هرچه بیشتر از آنها استفاده کنید، بیشتر از کاربرد آنها قدردانی خواهید کرد.