Backend Controller (Kotlin / Spring Boot)
Overview
Aplicar o padrão de controller como camada de entrada HTTP em Kotlin: receber request, validar parâmetros básicos, chamar use case e traduzir Result para resposta/exceção HTTP.
Guidelines
- Controller não implementa regra de domínio; delega para use case/query.
- Definir rota e verbo com
@GetMapping,@PostMapping,@PatchMapping,@DeleteMapping. - Usar Spring Security (
@PreAuthorize,@Secured) para endpoints protegidos. - Extrair input com
@RequestBody,@PathVariable,@RequestParam. - Mapear falhas de
ResultparaResponseEntityadequado. - Retornar payload esperado pelo contrato; para operações sem corpo, retornar
ResponseEntity.noContent(). - Seguir nomenclatura: arquivos
*Controller.kt, pacotes em lowercase.
Workflow
- Definir rota base (
@RequestMapping("...")) e segurança por controller. - Criar método por endpoint com anotações HTTP e segurança.
- Chamar use case com dependências injetadas no controller.
- Tratar
result.isFailuree retornarResponseEntitycom status code correto. - Retornar
result.getOrNull()ouResponseEntity.noContent()conforme contrato. - Revisar consistência de status code e formato de erro.
References
Consultar references/controller-pattern-kt.md para exemplos, checklist e armadilhas.
Consultar ../skills-standards.md para convenção global de nomenclatura (seção Kotlin).
Global Standards
- Consultar
../skills-standards.mdpara padrões globais de nomenclatura e convenções gerais entre skills.