Webhooks
Ipapadala ni Meshy ang isang POST request sa iyong server kapag may progress o natapos na ang isang API task, para hindi mo na kailangang mag-poll.
Bakit gumamit ng webhooks
Mas kaunti ang trabaho at mas mababa ang gastos ng webhooks kaysa sa pag-poll sa API para sa status ng bawat task. Ipinapadala ni Meshy ang bawat update habang nangyayari ito, kaya mas maaga mo itong natatanggap, at mas maayos mag-scale ang webhooks kumpara sa polling. Mas kaunti rin ang mga request na ipinapadala mo, kaya mas malayo ka sa iyong rate limits.
Mag-set up ng webhook
Para magdagdag ng webhook, sundin ang mga hakbang na ito:
- Buksan ang Webhooks page sa Developer Platform, at i-click ang Create Webhook.
- Sa Payload URL, ilagay ang URL na tatanggap ng mga delivery. Nagde-deliver lang si Meshy sa pamamagitan ng
https://. - Itago ang kopya ng Webhook Secret na awtomatikong nalalagay ng dialog. Dala-dala ito ng bawat delivery, para masuri ng iyong server na galing kay Meshy ang request. Para sa webhook na mayroon ka na, i-click ang icon ng mata sa column nitong Secret para makita ito.
- Piliin ang Active, at i-click ang Confirm.
Maaaring magkaroon ang bawat account ng 5 aktibong webhooks, at 10 sa kabuuan. Ang bawat aktibong webhook ay tumatanggap ng mga status update ng lahat ng iyong API tasks.
Para subukan ang isang webhook gamit ang server sa iyong computer, tingnan ang Subukan sa iyong computer.
Paghawak sa isang delivery
Para tanggapin ang isang delivery, sumagot ng status na mas mababa sa 400, tulad ng 200 o 202. Naghihintay si Meshy ng humigit-kumulang 25 segundo para sa tugon, kaya itago muna ang delivery at sumagot agad. Gawin ang mabagal na trabaho pagkatapos nito, tulad ng pag-download ng model.
Ang status na 400 pataas, o walang tugon, ay binibilang na isang nabigong delivery. Sinusubukan itong muli ni Meshy nang may mas mahahabang pagitan sa pagitan ng mga pagsubok, hanggang 4 na beses para sa isang IN_PROGRESS update at hanggang 9 na beses para sa isang pangwakas na status. Kung 20 magkakasunod na update ang nabigo sa bawat pagsubok, maaaring i-deactivate ni Meshy ang webhook. Para buksan itong muli, i-edit ito sa Webhooks page at piliin ang Active.
Isulat ang iyong code para sa mga sitwasyong ito:
- Maaaring dumating ang mga delivery nang hindi ayon sa pagkakasunod-sunod. Maaaring dumating ang isang
IN_PROGRESSdelivery pagkatapos ng pangwakas na delivery, kaya huwag hayaang mapalitan nito ang pangwakas na status. - Maaaring dumating nang higit sa isang beses ang parehong update. Hawakan ang bawat pares ng
idatstatusnang isang beses lamang. - Sinumang nakakaalam ng iyong URL ay maaaring magpadala rito ng request. Ikumpara ang
X-MESHY-API-WEBHOOK-SECRET-KEYsa iyong kopya ng secret, at tanggihan ang request na hindi tumutugma.
Kung hindi pa dumarating ang pangwakas na delivery ng isang task pagkatapos ng humigit-kumulang dalawang beses ng karaniwang oras ng task, kunin ang task mula sa GET endpoint nito. Para sa karaniwang oras at kung gaano katagal maghihintay, tingnan ang Task lifecycle.
Subukan sa iyong computer
Nagde-deliver lang si Meshy sa isang pampublikong https:// URL, kaya hindi ito direktang maaabot ang server sa iyong computer. Para subukan ang code sa iyong computer, i-forward ang isang pampublikong URL dito gamit ang isang webhook proxy. Ginagamit ng mga hakbang na ito ang smee.io, at anumang webhook proxy service ay gumagana sa parehong paraan.
-
Buksan ang smee.io at i-click ang Start a new channel. Kopyahin ang URL sa ilalim ng Webhook Proxy URL.
-
Kung wala ka pang smee client, i-install ito:
npm install --global smee-client -
I-forward ang channel papunta sa iyong server. Palitan ang
WEBHOOK_PROXY_URLng iyong Webhook Proxy URL:smee --url WEBHOOK_PROXY_URL --path /webhook --port 3000Ganito ang itsura ng output, kung saan ang
WEBHOOK_PROXY_URLay ang iyong Webhook Proxy URL:Forwarding WEBHOOK_PROXY_URL to http://127.0.0.1:3000/webhook Connected WEBHOOK_PROXY_URLPanatilihin itong tumatakbo habang nagsusubok ka. Para ihinto ang pag-forward, pindutin ang Ctrl+C. Tinatanggap ng iyong server ang mga delivery sa port
3000sa path na/webhook, kaya i-set up ang iyong code para makinig doon. -
Sa Webhooks page, gumawa ng webhook gamit ang Webhook Proxy URL bilang Payload URL nito.
Delivery payload
Nagpapadala si Meshy ng delivery habang ang isang task ay IN_PROGRESS, at isa pa kapag umabot ang task sa isang pangwakas na status. Maaaring umabot ang isang task sa pangwakas nitong status nang walang IN_PROGRESS delivery.
Ang bawat delivery ay isang POST papunta sa iyong Payload URL na may mga header na ito:
| Header | Value |
|---|---|
X-MESHY-API-WEBHOOK-SECRET-KEY | Ang secret ng webhook |
X-MESHY-API-WEBHOOK-USER-ID | Ang ID ng Meshy user na may-ari ng webhook |
Meshy-Webhook-Version | v1, ang format ng body |
Content-Type | application/json |
User-Agent | MeshyAPIWebhook/1.0.0 |
Ang JSON body ay ang task object. Ito ang parehong object na ibinabalik ng GET endpoint ng task, maliban sa progress. Nagpapadala ang isang delivery ng progress bilang isa sa mga value na ito:
50habang ang task ayIN_PROGRESS100kapag nagtagumpay ang task0kapag nabigo o na-cancel ang task
Para sa mga field ng bawat task object, kasama ang isang halimbawa, tingnan ang mga sumusunod na seksyon: