وب هوک چیست
از وبهوک در جاهای مختلفی استفاده میشود. تلگرام، گیتهاب و حتی وردپرس از تکنولوژی وبهوک برای تخصص خودشان استفاده میکنند. وبهوک در حقیقت یک مفهوم Api است که به سرعت در حال افزایش محبوبیت خود میباشد. در دنیای امروزی بیشتر کارهای ما در وب با استفاده از eventها اتفاق میافتد به همین علت ضرورت بر افزایش استفاده از وبهوک روزبه روز افزایش مییابد برای درک بیشتر وب هوک در ادامه با ما همراه باشید.
وبهوک چیست ؟
وب هوک یک درخواست HTTP است که توسط یک رویداد در سیستم مبدا ایجاد شده و اغلب همراه حجمی از داده ها، به سیستم مقصد ارسال میشود. وب هوکها خودکار هستند. به عبارت دیگر، هنگامی که رویداد آنها در سیستم مبدا فعال میگردد، به طور خودکار ارسال میشوند Webhook یا وب هوک، روشی را برای یک سیستم (مبدا) فراهم می کند تا در هنگام وقوع رویداد، با سیستمی دیگر (مقصد) ارتباط برقرار نماید و اطلاعات رویداد انجام شده را به اشتراک بگذارد.
Webhook یا وبهوکها چگونه کار میکنند
برای اینکه یک سیستم بتواند وب هوکها را ارسال کند، ابتدا باید بتواند از این فرایند پشتیبانی کند. GitHub، Shopify، Stripe، Twilio و Slack پلتفرمهای رایجی هستند که رویدادها را بر اساس فعالیتهایی که در آنها اتفاق میافتند، پشتیبانی میکنند.
برای دریافت درخواستهای Webhook، باید برای یک یا چند رویداد که پلتفرم برای آن وب هوک ارائه میکند، ثبت نام کنید. درخواست وب هوک، به یک نقطه خروجی در نرم افزار شما ارسال میشود. بنابراین باید یک نقطه خروج برای آن در نظر بگیرید و URL را به صورت *Webhook URL* برای آن رویداد ثبت کنید. هنگامی که ثبت وب هوک برای یک رویداد با افزودن نقطه خروج کامل شد، هر بار که رویدادی رخ می دهد، درخواست های وب هوک را در URL مقصدی که ارائه کرده اید، دریافت خواهید کرد.
کاربرد Webhook یا وبهوک چیست
اگر بخواهیم وب هوک را با بیان سادهتر برایتان شرح دهیم، باید بگوییم از وب هوک ها برای برقراری ارتباط از یک سیستم به سیستم دیگر استفاده میشود. برای درک بیشتر به مثال زیر توجه کنید:
فرض کنید مشترک یک سرویس استریم هستید. در ابتدای هر ماه، کارت اعتباریتان شارژ میشود و بانک این موضوع را از طریق ارسال پیامک یا ارسال ایمیل به شما اطلاع میدهد.
سیستم بانکی برای انجام این کار می تواند از یک Webhook برای تماس با یک سرویس ایمیل یا پیامکی استفاده کند تا هر بار که کارت شما شارژ میشود بلافاصله یک اعلان بدهی برای شما ارسال نماید. همچنین سیستم بانکی اطلاعات مربوط به شارژ را برایتان ارسال میکند. از دیگر کاربردهای وب هوک میتوان به موارد زیر نیز اشاره کرد:
مدیریت پیامهای متنی: برای مدیریت پیامهای متنی آیتمهای مختلفی از وبهوک وجود دارد. یکی از معروفترین وبهوکها Twilio است. این API این امکان را برای شما فراهم میکند تا دریافت پامکها یا تماسهای تلفنی شرکت یا محل کسب و کار خود را با وب هوکها تنظیم کنید. Twilio به این صورت عمل میکند که زمانی که فردی با شما تماس میگیرد یا پیامک ارسال میکند، یک درخواست HTTP POST به نشانی اینترنتی ارسال شده با اطلاعات مربوط به متن یا تماس ارسال میشود و به شما امکان میدهد به طور خودکار به آن پردازش، رسیدگی کنید یا پاسخ دهید.
پردازش ایمیل: همانطور که میدانید ارسال و دریافت ایمیل نیازمند یک تخصص خاص است. امروزه SendGrid، MailChimp و Mailgun ، APIهای سادهای را برای ارسال و دریافت ایمیل در اختیار شما قرار میدهند و کارشناسان آنها شرایط را مدیریت میکنند تا ایمیلها به صندوق ورودی شخص مورد نظر میرسد یا خیر.
پاسخ به تغییرات در کد شما: GitHub تقریباً هر رویداد قابل تصور در سیستم خود را نشان میدهد. Github به شما میگویید که میخواهید از چه رویدادهایی مطلع شوید و از چه نشانی اینترنتی مطلع میشوید و گیت هاب هر زمان که آن رویداد اتفاق بیفتد، یک درخواست POST با آن دادهها برای شما ارسال میکند.
بهترین زمان استفاده از Webhook چیست
بهترین زمان استفاده از وب هوک ها زمانی است که:
- از رویدادها در یک سیستم متصل، به صورت لحظهای آگاه باشید.
- ارسال اطلاعات به مقصد مورد نظر در زمان معین است.
- جایگزینی مقرون به صرفهتر برای پولینگ را در نظر دارید.
نمونه هایی از این نوع سناریوها عبارتند از:
- یک فروشگاه اینترنتی که ایجاد فاکتور فروش را به شما اطلاع میدهد.
- فروشگاههای اینترنتی در صورت اتمام موجودی کالای خاص، به بازرگانان اطلاع میدهند.
- درگاه پرداخت که در مورد پرداخت انجام شده، تجار را مطلع می کند.
- سیستم های نظارتی که به مدیران در مورد خطا یا فعالیت غیرعادی در یک سیستم، هشدار می دهند.
- همگام سازی اطلاعات بین سیستمها. به عنوان مثال زمانی که کاربر ایمیل خود را در سیستم منابع انسانی یا CRM شما تغییر میدهد، ایمیل او در سیستم حقوق و دستمزد یا فاکتور نیز تغییر میکند.
مقایسه وب هوک و پولینگ
“پولینگ” زمانی رخ میدهد که نرم افزار شما به صورت دورهای یک API را فراخوانی مینماید تا شروع یک رویداد یا دریافت اطلاعات جدید را بررسی کند. از سوی دیگر، وب هوکها زمانی که رویدادی در لحظه رخ میدهد، دادهها را برای نرم افزار شما ارسال میکنند. پولینگ در مقایسه با وب هوک از نظر مصرف منابع، سنگین تر است. زیرا می تواند چندین درخواست شبکه را قبل از دریافت اطلاعات جدید بپذیرد. در حالی که وب هوک تنها زمانی درخواستهای شبکه را انجام میدهد که اطلاعات جدیدی وجود داشته باشد.
چه زمانی از وب هوک استفاده میشود
موارد استفاده از وبهوک بسیار گسترده است. شما میتوانید متناسب با نیاز خود از آن بهره ببرید. اگر میخواهید:
- از رویدادی در یک سیستم متصل، به صورت لحظهای آگاه باشید.
- اطلاعات موردنظر در لحظه مد نظر ارسال شود.
- جایگزینی ارزانتر برای پولینگ در نظر دارید.
نمونههایی از این نوع سناریوها عبارتند از:
- یک فروشگاه اینترنتی که ایجاد فاکتور فروش را به شما اطلاع میدهد.
- فروشگاههای اینترنتی در صورت اتمام موجودی کالای خاص، به بازرگانان اطلاع میدهند.
- درگاه پرداخت که در مورد پرداخت انجام شده، تجار را مطلع می کند.
- سیستمهای نظارتی که به مدیران در مورد خطا یا فعالیت غیرعادی در یک سیستم، هشدار میدهند.
سخن آخر
وب هوک بخش مهمی از وب به حساب میآید و روز به روز محبوبیت آن بین طرفداران افزایش پیدا میکند. وب هوک برای اپلیکیشنها این امکان را فراهم میکند که دادهها را در لحظه و به صورت یکپارچه به یکدیگر منتقل کنند. در نظر داشته باشید اگرچه وب هوک مشابه API است، اما نقشهای متفاوتی دارند و هر کدام در جایگاه مناسب ایفای نقش میکنند. در این مطلب سعی کردیم به زبان ساده وب هوک را برای شما توصیح دهیم.