Backend Controller (C#)
Overview
Implementar a camada de interface (Interface Adapter) em C# usando ASP.NET Core Controllers. Foco em receber requisições, delegar para a camada de Application (Use Case/Query) e mapear o resultado para a resposta HTTP correta.
Guidelines
- Herdar de
ControllerBasee usar o atributo[ApiController]. - Injetar dependências (Use Cases/Queries) via construtor.
- Usar DTOs para entrada (
Request) e saída (Response). - Mapear o
Resultdo Use Case para o status HTTP correspondente (200 OK, 201 Created, 400 BadRequest, 404 NotFound). - Manter o controller "magro" (thin controller); a lógica de negócio deve estar no Use Case ou no Domínio.
Workflow
- Definir a rota (
[Route]) e o verbo HTTP ([HttpGet],[HttpPost], etc.). - Injetar o Use Case/Query necessário no construtor.
- Implementar a action mapeando o DTO de input para a chamada do Use Case.
- Chamar o Use Case e tratar o
Result. - Retornar
Ok(),BadRequest(),NotFound(), etc., com o DTO de output se aplicável. - Adicionar anotações Swagger (
[ProducesResponseType]) para documentação.
References
- Consultar
../skills-standards.mdpara convenção global de nomenclatura (seção C#). - Seguir padrões de C# idiomáticos.
Global Standards
- Consultar
../skills-standards.mdpara padrões globais de nomenclatura e convenções gerais entre skills.