Webhooks
Os Webhooks permitem-lhe receber atualizações em tempo real da Meshy quando as suas tarefas da API são concluídas ou mudam de estado. Depois de configurados, a Meshy enviará payloads (cargas úteis) de eventos em formato json por POST para os URLs que especificar.
Porquê criar Webhooks
A utilização de webhooks tem várias vantagens, especialmente no que diz respeito à verificação automática dos estados das tarefas da API. Os Webhooks exigem menos esforço e custos do que consultar continuamente a API para obter atualizações do estado das tarefas. Os Webhooks também permitem atualizações quase em tempo real e, em última análise, escalam melhor do que a consulta da API. Isto também lhe permite gerir melhor os seus limites de taxa, especialmente se estiver a consultar constantemente.
Instalação e configuração
Para ativar webhooks, aceda à página de definições da API quando tiver sessão iniciada na aplicação Web da Meshy. Encontre a secção "Webhooks" abaixo das suas API keys e clique no botão "Criar Webhook". Forneça o URL https pretendido para receber webhooks e ative o webhook para receber automaticamente atualizações de tarefas da Meshy. Pode ter um máximo de 5 webhooks ativos por conta Meshy. Quando um webhook está ativado, todas as atualizações de estado das tarefas da API serão enviadas automaticamente para o URL de payload. Por motivos de segurança, neste momento apenas permitimos o envio de webhooks para URLs https. Se pretender configurar testes locais, consulte a secção seguinte.
Requisitos de entrega de Webhooks
Para que o seu webhook funcione normalmente e continue a receber eventos:
- O seu servidor tem de responder com um código de estado HTTP abaixo de 400 (por exemplo,
200 OK,202 Accepted). - Qualquer resposta com um código de estado
>= 400será tratada como uma entrega falhada. - Várias falhas consecutivas podem:
- Fazer com que as atualizações de progress sejam atrasadas ou cheguem fora de ordem
- Desativar automaticamente o seu webhook após tentativas repetidas (consulte a Política de desativação automática)
Dica: Devolva sempre uma resposta de sucesso depois de validar e armazenar o payload do webhook, mesmo que o processamento adicional ocorra de forma assíncrona.
Encaminhar Webhooks para testes locais
Se pretender testar o seu código de webhook localmente, que normalmente está num endereço http, pode utilizar um URL de proxy de webhook para encaminhar webhooks para o seu computador ou codespace. Abaixo encontram-se os passos recomendados utilizando smee.io, mas pode utilizar qualquer serviço que pretenda para gerar um URL de proxy de webhook.
Obter um URL de proxy de webhook:
- No seu navegador, aceda a https://smee.io/
- Clique em "Start a new channel"
- Copie o URL completo em "Webhook Proxy URL". Utilizará este URL nos passos de configuração seguintes.
Encaminhar webhooks:
- Se ainda não tiver o smee-client instalado, execute o seguinte comando no seu terminal.
npm install --global smee-client
- Para receber webhooks encaminhados de smee.io, execute o seguinte comando no seu terminal. Substitua
WEBHOOK_PROXY_URLpelo seu URL de proxy de webhook anterior.
smee --url WEBHOOK_PROXY_URL --path /webhook --port 3000
Deverá ver um resultado semelhante a este, em que WEBHOOK_PROXY_URL é o seu URL de proxy de webhook:
Forwarding WEBHOOK_PROXY_URL to http://127.0.0.1:3000/webhook
Connected WEBHOOK_PROXY_URL
- Mantenha isto em execução enquanto testa o seu webhook. Quando quiser parar de encaminhar webhooks, introduza Ctrl+C.
Tenha em atenção que o caminho é /webhook e a porta é 3000. Estes valores podem ser úteis quando quiser configurar o seu próprio código para receber entregas de webhook posteriormente.
Criar um webhook:
Pode agora utilizar o URL de proxy de webhook para criar um novo webhook na página de definições da Meshy API.
Resposta de exemplo
Quando o estado de uma tarefa muda, a Meshy enviará um payload de webhook por POST para o URL configurado. O payload contém o objeto da tarefa em formato JSON. Para uma descrição completa de todas as propriedades do objeto da tarefa e payloads (cargas úteis) de exemplo, consulte: