Série: Recolocação e teste prático Java
Episódio 06: A porta de entrada da API: controllers simples, validação e documentação viva
A parte mais visível — e perigosa
A camada Web atrai responsabilidade porque é onde todo mundo testa. O PDF da jornada de recolocação foi claro: controllers sem lógica de negócio, validação de contrato na borda, delegação à aplicação.
O problema por trás da etapa
O controller de veículos expõe cadastrar, atualizar, consultar por id, listar com paginação e remover. Recebe requests, aplica @Valid, chama o service e devolve status adequados: 201 em criação, 200 em leitura/atualização, 204 em remoção quando fizer sentido, 400 em validação, 404 em ausência.
DTOs de entrada carregam Bean Validation; falhas viram HTTP 400 com corpo padronizado via @RestControllerAdvice — menos duplicação, melhor experiência para quem exercita a API no Swagger.
A decisão técnica
Handler global trata validação, veículo não encontrado (404) e eventual 500 sem vazar stack interno. springdoc-openapi descreve parâmetros de paginação, modelos e códigos; a meta é abrir o Swagger e entender o contrato em minutos.
Implementando com critério
Método de cadastro com forma mental fixa: receber request, chamar aplicação, montar response/URI, retornar. Se o método passa a checar marca, mexer em entidade ou acessar repository direto, algo escapou da camada certa.
Teste manual: feliz + erros (campo obrigatório, valor negativo, id inexistente). Documentação visualmente revisada — quebrada ou confusa passa impressão de acabamento incompleto mesmo com código ok.
Fechamento da etapa
Com endpoints completos e Swagger navegável, falta consolidar entrega: manual de arranque em README.md, checklist e narrativa curta para a banca — tema do fechamento da série.
Como defender essa etapa
Web como contrato público: HTTP, status e documentação; inteligência mora na Application. Padronizar erros atende explicitamente o pedido de 400 com mensagens apropriadas.
Reflexão final: Controller discreto é prova silenciosa de que as camadas anteriores fizeram o trabalho.
Nota: Cenário anonimizado; série de insights técnicos reutilizáveis.