Webhook คืออะไร แนวทางการใช้งาน Webhook

ก่อนจะไปถึงเรื่อง Webhook ขอเท้าความไปถึงเรื่องของการเรียกใช้งาน API  แบบที่ไม่ต่อเนื่องนะครับ
ยกตัวอย่างง่ายๆ เช่น Flow การจ่ายเงินที่ต้องไป Call API ของทาง Payment gateway แล้วต้องรอให้ลูกค้าทำการจ่ายเงินจนเสร็จ คำถามคือ เราจะรู้ได้อย่างไรว่าลูกค้าจ่ายแล้ว ?

แบบเดิมๆ ง่ายๆ เลยไม่ต้องคิดมากก็เข้าไป Query Check เรื่อยๆ ถูกมั้ยครับ อาจจะ Query ด้วย Tx ID หรือ Order ID อะไรก็ว่าไป อยากได้ Realtime แค่ใหนก็อยู่ที่ว่าจะ Query ถี่แค่ใหน ซึ่งปัญหามันก็คือเราต้องวน Query ไปเรื่อยๆ จนกว่าจะได้คำตอบว่า Success แล้วซึ่งแน่นอน ถ้า เว้นช่วงในการ Query นาน ก็จะทำให้ความต่อเนื่องไม่ Real time แต่ถ้า Query  ถี่ๆ เกินไปก็เป็นการสิ้นเปลือง Traffic ทั้งที่เราเองและที่ปลายทางด้วย 

Webhook เกิดมาเพื่อแก้ปัญหานี้ครับ คือมันจะดีกว่ามั้ยถ้าปลายทางทำงานเสร็จแล้วส่งมาบอกเราว่าเรียบร้อยแล้ว คำตอบคือมันดีงามแน่ๆ ครับ เพราะ Confirm ว่า Realtime แน่นอนเพราะ เสร็จปุ๊บ บอกได้ทันที แถมเราไม่ต้องเสียเวลาส่งไป Query ถามซ้ำๆ อีกด้วย 

Webhook ทำงานยังไง แน่นอนครับการที่ต้นทางจะส่งกลับมาบอกเราได้ เราก็ต้อง Provide ช่องทางไว้ซั่งส่วนมากก็จะเป็น API ที่มีการตกลง parameter กันไว้แล้วว่าจะรับส่งอะไรกัน แล้วเราก็บอกทาง ปลายทางว่าเมื่อคุณทำเสร็จแล้วให้กลับมาเรียก API นี้พร้อมทั้งส่งข้อมูลที่ใช้อ้างอิงกลับมาด้วย เพียงเท่านี้ก็เรียบร้อย

Webhook ข้อดีคือ Confirm ว่า Realtime แน่นอน และทำให้ไม่ต้องเสียเวลา Query ซ้ำๆ
Webhook ข้อเสียคือ ทางต้นทางจะต้องเพิ่มงานมีการ Provide API ไว้ทำ Webhook คือจริงๆ มันก็ไม่ใช่ข้อเสียซะทีเดียวอ่ะนะ แล้วแต่เพื่อนๆลองประเมินละกันนะ

ความคิดเห็น

โพสต์ยอดนิยมจากบล็อกนี้

Oracle date format จัด format date ให้แสดง พศ และ เดือน ภาษาไทยหรือตามภาษาที่เราเลือก

java -Xms , java -Xmx กำหมด memory ให้ JVM เพื่อป้องกันปัญหา Out of Memory

Java this กับ super การใช้งานคำสั่ง this กับ super ใน ภาษา Java