Checklist de uma API
Vinte perguntas antes de publicar — cada uma com a página que a responde.
Uma API pronta responde a estas perguntas. As que ficam sem resposta viram incidente ou e-mail de suporte, e quase sempre as duas coisas.
| Pergunta | Onde |
|---|---|
o erro tem type que um programa lê? | Problemas |
| o 500 esconde a mensagem interna? | Problemas |
o que acontece com Accept que você não serve? | Negociação |
| duas edições simultâneas apagam uma à outra? | Pré-condições |
| a listagem tem teto de itens por página? | Paginação |
| a listagem de algo que muda usa cursor? | Paginação |
| remover um campo sobe a versão? | Versionamento |
| a versão velha avisa quando vai sumir? | Versionamento |
| um POST reenviado cobra duas vezes? | Idempotência |
| 401 e 403 estão nos lugares certos? | Autenticação |
| um cliente com laço derruba os outros? | Limites |
| o contrato publicado confere com as rotas? | Contrato |
| toda entrada de fora é validada? | Kiln.validar — Kiln |
| CORS libera só as origens certas? | Middleware |
| as rotas têm teste sem socket, e um com socket? | Testes de API |
| duas rotas escrevem no mesmo estado sem trava? | dataforge check avisa: escrita-concorrente |
| o log tem o id do pedido? | Kiln.request_id — Observabilidade |
| há um SLO, e um alerta que para quando o problema passa? | SLO |
o processo termina limpo no docker stop? | Encerrar |
| há TLS na frente? | o Kiln não tem: Produção |