Webhooks

Webhooks ช่วยให้คุณได้รับการอัปเดตแบบเรียลไทม์จาก Meshy เมื่องาน API ของคุณเสร็จสมบูรณ์หรือมีการเปลี่ยนแปลงสถานะ เมื่อตั้งค่าเรียบร้อยแล้ว Meshy จะ POST เพย์โหลดของ event ในรูปแบบ json ไปยัง URL ที่คุณระบุ


เหตุใดจึงควรสร้าง Webhooks

การใช้ webhooks มีข้อดีหลายประการ โดยเฉพาะอย่างยิ่งเมื่อพูดถึงการตรวจสอบสถานะของงาน API โดยอัตโนมัติ webhooks ใช้ความพยายามและค่าใช้จ่ายน้อยกว่าการเรียก API ซ้ำ ๆ อย่างต่อเนื่องเพื่อรับการอัปเดตสถานะงาน webhooks ยังช่วยให้ได้รับการอัปเดตแบบเกือบเรียลไทม์ และในท้ายที่สุดก็สามารถขยายขนาดได้ดีกว่าการเรียก API แบบ polling นอกจากนี้ยังช่วยให้คุณจัดการ rate limit ของคุณได้ดียิ่งขึ้น โดยเฉพาะอย่างยิ่งหากคุณเรียก API อย่างต่อเนื่อง


การตั้งค่าและกำหนดค่า

หากต้องการเปิดใช้งาน webhooks ให้เปิด หน้า Webhooks ใน Developer Platform แล้วคลิกปุ่ม "Create Webhook" จากนั้นระบุ URL แบบ https ที่คุณต้องการใช้รับ webhooks และเปิดใช้งาน webhook เพื่อรับการอัปเดตงานจาก Meshy โดยอัตโนมัติ คุณสามารถมี webhooks ที่เปิดใช้งานได้สูงสุด 5 รายการต่อบัญชี Meshy หนึ่งบัญชี เมื่อเปิดใช้งาน webhook แล้ว การอัปเดตสถานะงาน API ทั้งหมดจะถูกส่งไปยังเพย์โหลด URL โดยอัตโนมัติ ด้วยเหตุผลด้านความปลอดภัย ในขณะนี้เราอนุญาตให้ส่ง webhooks ไปยัง URL แบบ https เท่านั้น หากคุณต้องการตั้งค่าการทดสอบภายในเครื่อง (local testing) โปรดดูหัวข้อถัดไป


ข้อกำหนดในการส่ง Webhook

เพื่อให้ webhook ของคุณทำงานได้ตามปกติและยังคงได้รับ event ต่อไป:

  • เซิร์ฟเวอร์ของคุณต้องตอบกลับด้วย รหัสสถานะ HTTP ที่ต่ำกว่า 400 (เช่น 200 OK, 202 Accepted)
  • การตอบกลับใด ๆ ที่มีรหัสสถานะ >= 400 จะถือว่าเป็นการส่งที่ล้มเหลว
  • ความล้มเหลวติดต่อกันหลายครั้งอาจ:
    • ทำให้การอัปเดต progress ล่าช้าหรือมาถึงไม่ตามลำดับ
    • ปิดการใช้งาน webhook ของคุณโดยอัตโนมัติหลังจากพยายามซ้ำหลายครั้ง (ดูนโยบายการปิดใช้งานอัตโนมัติ)

เคล็ดลับ: ควรส่งการตอบกลับที่สำเร็จเสมอหลังจากที่คุณตรวจสอบและจัดเก็บเพย์โหลดของ webhook แล้ว แม้ว่าการประมวลผลต่อไปจะเกิดขึ้นแบบอะซิงโครนัสก็ตาม


การส่งต่อ Webhooks เพื่อทดสอบภายในเครื่อง

หากคุณต้องการทดสอบโค้ด webhook ของคุณภายในเครื่อง ซึ่งโดยทั่วไปจะอยู่ที่แอดเดรสแบบ http คุณสามารถใช้ webhook proxy URL เพื่อส่งต่อ webhooks ไปยังคอมพิวเตอร์หรือ codespace ของคุณได้ ด้านล่างนี้เป็นขั้นตอนที่แนะนำโดยใช้ smee.io แต่คุณสามารถใช้บริการใดก็ได้ที่คุณต้องการเพื่อสร้าง webhook proxy URL

รับ webhook proxy URL:

  1. ในเบราว์เซอร์ของคุณ ไปที่ https://smee.io/
  2. คลิก "Start a new channel"
  3. คัดลอก URL แบบเต็มใต้หัวข้อ "Webhook Proxy URL" คุณจะใช้ URL นี้ในขั้นตอนการตั้งค่าถัดไป

ส่งต่อ webhooks:

  1. หากคุณยังไม่ได้ติดตั้ง smee-client ให้รันคำสั่งต่อไปนี้ในเทอร์มินัลของคุณ
npm install --global smee-client
  1. หากต้องการรับ webhooks ที่ส่งต่อมาจาก smee.io ให้รันคำสั่งต่อไปนี้ในเทอร์มินัลของคุณ แทนที่ WEBHOOK_PROXY_URL ด้วย webhook proxy URL ของคุณจากขั้นตอนก่อนหน้า
smee --url WEBHOOK_PROXY_URL --path /webhook --port 3000

คุณควรเห็นผลลัพธ์ที่มีลักษณะดังนี้ โดยที่ WEBHOOK_PROXY_URL คือ webhook proxy URL ของคุณ:

Forwarding WEBHOOK_PROXY_URL to http://127.0.0.1:3000/webhook
Connected WEBHOOK_PROXY_URL
  1. ให้คำสั่งนี้ทำงานต่อไปในขณะที่คุณทดสอบ webhook ของคุณ เมื่อคุณต้องการหยุดการส่งต่อ webhooks ให้กด Ctrl+C
    โปรดสังเกตว่า path คือ /webhook และ port คือ 3000 ค่าเหล่านี้อาจมีประโยชน์เมื่อคุณต้องการตั้งค่าโค้ดของคุณเองเพื่อรับการส่ง webhook ในภายหลัง

สร้าง webhook:

ตอนนี้คุณสามารถใช้ webhook proxy URL เพื่อสร้าง webhook ใหม่ได้ที่หน้า Webhooks


ตัวอย่างการตอบกลับ

เมื่อสถานะของงานเปลี่ยนแปลง Meshy จะ POST เพย์โหลด webhook ไปยัง URL ที่คุณกำหนดค่าไว้ เพย์โหลดจะมีอ็อบเจกต์งานในรูปแบบ JSON สำหรับคำอธิบายฉบับสมบูรณ์เกี่ยวกับคุณสมบัติทั้งหมดของอ็อบเจกต์งานและตัวอย่างเพย์โหลด โปรดดูที่: