Referência da API
Toda rota que o mock responde, do envio ao webhook: a API nativa em JSON, a compatível com a Twilio, o envio simples de uma linha e as rotas de controle que o painel e os testes usam. Abra uma operação para ver os parâmetros, o exemplo de requisição e cada resposta, erros incluídos.
Convenções
- URL base:
http://localhost:8899, a porta do container. As três APIs de envio moram na mesma raiz. - Sem chave de API: a API nativa aceita qualquer
Bearer, a compatível com a Twilio aceita qualquerBasic— ou nenhum. O mock existe para ser chamado sem segredo. - Erros: a API nativa responde
{"error":{"code","message","field"}}; a compatível com a Twilio usa o envelope dela,{"code","message","more_info","status"}; a simples troca o invólucro por{"status":"error","code","message"}. - Webhooks: uma chamada a cada mudança de status (
message.status) e outra a cada resposta do aparelho (message.inbound), assinadas comx-sms-signature: sha256=<hmac>quandoSMS_WEBHOOK_SECRETestá definido. - Proteção local: toda rota, exceto
/health, confere o cabeçalhoHost; as que mudam o estado conferem também oOrigin; o handshake de/wse oGET /sms/sendrecusam uma origem estrangeira. As recusas são403, comforbidden_hostouforbidden_origin.
O painel fica em http://localhost:8899: ele é o aparelho, e o que a sua aplicação envia aparece ali como o aparelho recebeu.
As operações
A API nativa, a compatível com a Twilio e o envio simples, com os parâmetros, os exemplos de requisição e cada resposta que elas devolvem. Filtre pelo método, pela rota ou pelo texto da operação.
Números mágicos
Os quatro últimos dígitos do destino decidem o desfecho da mensagem, para o teste não depender de sorte. O mesmo número falha em qualquer máquina, em qualquer teste.
| Final do número | Desfecho | Estado final | Código | Resposta HTTP |
|---|---|---|---|---|
0001 | Handset inalcançável | failed | 30003 | 201 |
0002 | Handset desconhecido | undelivered | 30005 | 201 |
0003 | Rejeitada pela API, na hora do envio | — | — | 400 |
0004 | Fica parada em sent, como se a operadora nunca confirmasse | sent | — | 201 |
0005 | Filtrada pela operadora | failed | 30007 | 201 |
| qualquer outro | Entrega normal | delivered | — | 201 |
O número 0003 nunca vira mensagem: a API nativa e a simples respondem 400 com rejected_number, e a compatível com a Twilio responde 400 com 21211. Nos outros desfechos, o código vem no errorCode da mensagem.
As rotas do mock
As rotas que o mock usa para consigo, as que o painel e os testes chamam: responder como o aparelho, mudar um status na mão, ler e mudar os ajustes, ver e limpar o log de webhooks, semear a caixa de exemplo, limpar tudo e o feed ao vivo. Abra uma rota para ver o que ela recebe e o que responde.