Um teste de atualização de carrinho falhou com erro 405 Method Not Allowed. Antes de alterar o código, foi necessário investigar o contrato real da API.
O problema encontrado
O teste utilizava uma rota de atualização de produto no carrinho:
PUT /carts/{cart_id}/product/{product_id}
A resposta da API:
405 Method Not Allowed
Esse erro indica que a rota existe, porém o método HTTP utilizado não é permitido.
Investigação
1. Validando o contrato no Swagger
A documentação revelou que a rota correta era diferente:
PUT /carts/{cartId}/product/quantity
Payload esperado:
{
"product_id": "ID_DO_PRODUTO",
"quantity": 3
}
2. Confirmando métodos disponíveis
O método OPTIONS ajudou a identificar quais operações estavam disponíveis na rota:
Allow: DELETE
Isso confirmou que aquela URL não aceitava PUT.
Correção aplicada
Antes:
PUT /carts/{cartId}/product/{productId}
Depois:
PUT /carts/{cartId}/product/quantity
{
"product_id": productId,
"quantity": quantity
}
Aprendizados
- Nem toda falha de teste significa erro no código.
- Status HTTP carregam informações importantes para investigação.
- Swagger deve ser usado como ferramenta de análise, não apenas consulta.
- Validar endpoint, método e payload evita alterações desnecessárias.
Códigos HTTP importantes
400 - Dados inválidos
401 - Autenticação inválida
403 - Sem permissão
404 - Recurso não encontrado
405 - Método HTTP incorreto
422 - Falha de validação
Conclusão
Automação profissional exige mais do que escrever chamadas HTTP. O trabalho de QA envolve interpretar falhas, levantar hipóteses e validar o comportamento real da aplicação.