message. O status HTTP é a parte legível por máquina; a
string é para uma pessoa lendo um log.
A ordem em que as checagens rodam
Isso decide qual erro você vê quando uma requisição está errada em mais de um jeito, e é a razão de um payload malformado poder voltar como um problema de autenticação.1
Autenticação
Antes de o corpo ser parseado.
2
Autorização
Lista de IPs permitidos, depois tipo de login.
3
Negociação de conteúdo
O cabeçalho
Accept.4
Parsing
JSON bem formado, depois nomes de campos, depois valores.
5
Regras de negócio
Sender ID, template, crédito, rate limit.
Autenticação e autorização
401 significa “você não se identificou”; 403 significa “você se identificou e não foi aceito”.
A distinção vale para o seu alerta: um 401 súbito costuma ser um deploy que perdeu uma variável de
ambiente, enquanto um 403 súbito costuma ser rotação de senha ou um IP que mudou.
Negociação de conteúdo
Omitir
Accept totalmente está OK. Enviar Accept: text/plain não, e este é o único erro que uma
barra de endereços de navegador produz de forma confiável.
Parsing
Regras de negócio
Qual desses você deve repetir?
Relacionados
Visão geral da API REST
O envelope, a autenticação e a regra de nomes de campo.
Enviar uma mensagem
Cada campo, com seu padrão e sua recusa.