Webhooks
Webhooks ช่วยให้คุณได้รับการอัปเดตแบบเรียลไทม์จาก Meshy เมื่องาน API ของคุณเสร็จสมบูรณ์หรือมีการเปลี่ยนแปลงสถานะ เมื่อกำหนดค่าเรียบร้อยแล้ว Meshy จะส่ง POST เพย์โหลดของอีเวนต์ในรูปแบบ json ไปยัง URL ที่คุณระบุ
เหตุผลในการสร้าง Webhooks
การใช้ webhooks มีข้อดีหลายประการ โดยเฉพาะในด้านการตรวจสอบสถานะงาน API โดยอัตโนมัติ webhooks ต้องใช้ความพยายามและค่าใช้จ่ายน้อยกว่าการ polling API อย่างต่อเนื่องเพื่อรับการอัปเดตสถานะงาน webhooks ยังช่วยให้สามารถอัปเดตได้แบบเกือบเรียลไทม์และท้ายที่สุดก็สามารถขยายขนาดได้ดีกว่าการ polling API นอกจากนี้ยังช่วยให้คุณจัดการขีดจำกัดอัตรา (rate limit) ของคุณได้ดีขึ้น โดยเฉพาะอย่างยิ่งหากคุณทำการ polling อย่างต่อเนื่อง
การตั้งค่าและกำหนดค่า
หากต้องการเปิดใช้งาน webhooks ให้เปิดหน้า Webhooks ในแพลตฟอร์มสำหรับนักพัฒนา และคลิกปุ่ม "Create Webhook" ระบุ URL แบบ https ที่คุณต้องการใช้รับ webhooks และเปิดใช้งาน webhook เพื่อรับการอัปเดตงานจาก Meshy โดยอัตโนมัติ คุณสามารถมี webhooks ที่เปิดใช้งานได้สูงสุด 5 รายการต่อบัญชี Meshy หนึ่งบัญชี เมื่อเปิดใช้งาน webhook แล้ว การอัปเดตสถานะงาน API ทั้งหมดจะถูกส่งไปยังเพย์โหลด URL โดยอัตโนมัติ ด้วยเหตุผลด้านความปลอดภัย ในขณะนี้เราอนุญาตให้ส่ง webhooks ไปยัง URL แบบ https เท่านั้น หากคุณต้องการตั้งค่าการทดสอบในเครื่อง โปรดดูส่วนถัดไป
ข้อกำหนดในการส่ง Webhook
เพื่อให้ webhook ของคุณทำงานได้ตามปกติและยังคงได้รับอีเวนต์ต่อไป:
- เซิร์ฟเวอร์ของคุณต้องตอบกลับด้วย รหัสสถานะ HTTP ที่ต่ำกว่า 400 (เช่น
200 OK,202 Accepted) - การตอบกลับใดๆ ที่มีรหัสสถานะ
>= 400จะถือว่าเป็นการส่งที่ล้มเหลว - ความล้มเหลวติดต่อกันหลายครั้งอาจ:
- ทำให้การอัปเดต progress ล่าช้าหรือมาถึงไม่เรียงตามลำดับ
- ปิดใช้งาน webhook ของคุณโดยอัตโนมัติหลังจากพยายามซ้ำหลายครั้ง (ดูนโยบายการปิดใช้งานอัตโนมัติ)
เคล็ดลับ: ให้ส่งการตอบกลับที่สำเร็จกลับไปเสมอหลังจากที่คุณตรวจสอบและจัดเก็บเพย์โหลดของ webhook แล้ว แม้ว่าการประมวลผลเพิ่มเติมจะเกิดขึ้นแบบอะซิงโครนัสก็ตาม
หากอีเวนต์สุดท้ายของงานยังไม่มาถึงหลังจากผ่านไปประมาณสองเท่าของเวลาปกติ ให้เรียกดูงานนั้นผ่านทาง GET เอนด์พอยต์ ดูวงจรชีวิตของงาน สำหรับระยะเวลาโดยทั่วไปและระยะเวลาที่ควรรอ
การส่งต่อ Webhooks เพื่อทดสอบในเครื่อง
หากคุณต้องการทดสอบโค้ด webhook ของคุณในเครื่อง ซึ่งโดยทั่วไปจะอยู่ที่ที่อยู่ http คุณสามารถใช้ webhook proxy URL เพื่อส่งต่อ webhooks ไปยังคอมพิวเตอร์หรือ codespace ของคุณได้ ด้านล่างนี้เป็นขั้นตอนที่แนะนำโดยใช้ smee.io แต่คุณสามารถใช้บริการใดก็ได้ที่คุณต้องการเพื่อสร้าง webhook proxy URL
รับ webhook proxy URL:
- ในเบราว์เซอร์ของคุณ ให้ไปที่ https://smee.io/
- คลิก "Start a new channel"
- คัดลอก URL แบบเต็มใต้ "Webhook Proxy URL" คุณจะใช้ URL นี้ในขั้นตอนการตั้งค่าถัดไป
ส่งต่อ webhooks:
- หากคุณยังไม่ได้ติดตั้ง smee-client ให้รันคำสั่งต่อไปนี้ในเทอร์มินัลของคุณ
npm install --global smee-client
- หากต้องการรับ 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
- ให้รันคำสั่งนี้ต่อไปขณะที่คุณทดสอบ webhook ของคุณ เมื่อคุณต้องการหยุดการส่งต่อ webhooks ให้กด Ctrl+C
โปรดทราบว่า path คือ /webhook และ port คือ 3000 ค่าเหล่านี้อาจเป็นประโยชน์เมื่อคุณต้องการตั้งค่าโค้ดของคุณเองเพื่อรับการส่ง webhook ในภายหลัง
สร้าง webhook:
ตอนนี้คุณสามารถใช้ webhook proxy URL เพื่อสร้าง webhook ใหม่ได้ที่หน้า Webhooks
ตัวอย่างการตอบกลับ
เมื่อสถานะของงานเปลี่ยนแปลง Meshy จะส่ง POST เพย์โหลดของ webhook ไปยัง URL ที่คุณกำหนดค่าไว้ เพย์โหลดประกอบด้วยออบเจ็กต์งานในรูปแบบ JSON สำหรับคำอธิบายแบบสมบูรณ์เกี่ยวกับคุณสมบัติทั้งหมดของออบเจ็กต์งานและตัวอย่างเพย์โหลด โปรดดูที่: