Chame de outro sistema
Um endpoint de API deixa qualquer outro sistema — um backend, uma macro de planilha, um job de CI — rodar o seu script publicado com uma requisição HTTP e receber a saída como JSON. Nesta última lição da trilha você ativa o endpoint do daily-report, cria um token, faz a chamada e encontra essa chamada na página Execuções.
- Ativar um endpoint pela aba Gatilhos do editor
- Criar um token e guardá-lo com segurança
- Chamar o endpoint de forma síncrona e assíncrona
- Proteger com um limite de chamadas por minuto
Um script, uma URL
Cada script ou flow pode ter um endpoint. Ele fica na aba Gatilhos do item — o mesmo lugar dos agendamentos e eventos — e a página API do projeto lista todos os endpoints do projeto. Como todo gatilho, o endpoint roda a versão publicada, sempre a mais recente: não há versão de API para escolher nem nada para reapontar depois de publicar.
1def main(name: str = "world"):2 print(f"saying hello to {name}")3 return {"message": f"Hello, {name}!"}1curl -X POST "$WAISO_URL/exec/p_58e3011e/hello" \2 -H "Authorization: Bearer $WAISO_TOKEN" \3 -H "Content-Type: application/json" \4 -d '{"name":"world"}'O endereço é POST /exec/<id-do-projeto>/<caminho> no seu endereço do Waiso (numa instalação própria, no endereço público da API). O id é o id permanente do projeto, não o nome, então renomear o projeto nunca quebra quem chama. O caminho padrão é o caminho da pasta e o nome do script — aqui, daily-report.
Ative e chame
- Ative o endpoint
Abra o
daily-reporte a aba Gatilhos. O cartão da API diz Ainda não está na API; clique em Ativar endpoint. Ele começa como POST, síncrono, protegido por token, com as entradas lidas do corpo JSON. Configurar muda qualquer uma dessas opções. (O Ativar endpoint do aviso de publicação faz o mesmo.) - Crie um token
Em Chamar, siga Criar token: as configurações da página API abrem com um novo token para este endpoint. Escolha por quanto tempo ele vale e clique em Gerar token. Copie o token — ele não será exibido de novo. Guarde nos segredos de quem chama como
WAISO_TOKEN. - Chame
Clique em Copiar curl na aba Gatilhos — ele já traz o seu endereço e o id do projeto — e rode num terminal com
WAISO_TOKENdefinido. O corpo abaixo enviapassing= 90. - Encontre a chamada
Abra Execuções: a nova linha mostra Disparado por API, com o token usado. A página API conta a chamada no uso do endpoint.
curl -X POST "https://<your-waiso-address>/exec/<project-id>/daily-report" \
-H "Authorization: Bearer $WAISO_TOKEN" \
-H "Content-Type: application/json" \
-d '{"passing":90}'{
"runId": "7c0e5b9a-…",
"status": "success",
"flowRunId": null,
"output": {
"total": 3,
"average": 85,
"passed": 1
},
"error": null,
"errorCode": null,
"durationMs": 38,
"totalMs": 112
}Síncrono ou assíncrono
Um endpoint síncrono espera a execução e responde com a saída — ideal para o que termina em poucos segundos. Ele espera até 30 segundos; depois disso responde 504 com "status": "timeout" e a execução continua. Um endpoint assíncrono responde na hora com 202 e um runId; quem chama consulta /exec/<id-do-projeto>/runs/<runId> até o status ser final.
curl -X POST "https://<your-waiso-address>/exec/<project-id>/daily-report" \
-H "Authorization: Bearer $WAISO_TOKEN" \
-H "Content-Type: application/json" \
-d '{"passing":90}'
# → 202 {"runId": "…"}; then poll until it finishes:
curl "https://<your-waiso-address>/exec/<project-id>/runs/$RUN_ID" \
-H "Authorization: Bearer $WAISO_TOKEN"| Status HTTP | Significa |
|---|---|
200 | A execução deu certo; leia output. |
202 | Chamada async aceita (ou um flow esperando aprovação); consulte com o runId. |
401 | Token ausente, inválido, revogado, expirado ou sem permissão para este endpoint; code diz qual. |
422 | O seu script rodou e falhou (lançou erro, estourou o tempo ou foi cancelado); errorCode diz qual. Repetir a mesma chamada falha do mesmo jeito. |
429 | Acima do limite de chamadas por minuto; nenhuma execução começou. |
503 | A plataforma perdeu a execução (nenhum worker disponível); vale tentar de novo. |
Tokens e limites
- Um token chama só os endpoints que ele lista — um endpoint novo exige editar o token para incluí-lo. Prefira um token por chamador, restrito ao que ele chama, assim revogar um nunca quebra os outros.
- Chamadas por minuto (Gatilhos → Limites): quem passar recebe
429com o cabeçalhoRetry-Aftere{"code": "rate_limited", "retryAfter": …}; nenhuma execução começa e nada é cobrado. - Execuções ao mesmo tempo: as execuções a mais esperam na fila em vez de falhar. Os dois ficam vazios por padrão — aí só vale o limite do seu plano.