Guia — atenvi-bff
Backend for Frontend em NestJS. Agrega e adapta dados para atenvi-admin e atenvi-web.
Estrutura de pastas
src/
modules/
<domain>/
<domain>.module.ts
<domain>.controller.ts
<domain>.service.ts
<domain>.entity.ts
dto/
create-<domain>.dto.ts
update-<domain>.dto.ts
<domain>-response.dto.ts
common/
guards/
interceptors/
pipes/
decorators/
config/
database/
migrations/
Regras NestJS
- 1 módulo por domínio de negócio
- Controllers: apenas roteamento e validação de entrada — sem lógica
- Services: lógica de negócio e acesso ao banco via TypeORM
- DTOs com
class-validatorpara validação eclass-transformerpara serialização - Swagger obrigatório:
@ApiTags,@ApiOperation,@ApiResponseem todo controller
TypeORM
- Migrations versionadas — sem
synchronize: trueem produção - Entidades na pasta do módulo correspondente
- Sem queries raw — usar QueryBuilder quando Repository não basta
Auth
- JWT via Passport — Guard
@UseGuards(JwtAuthGuard)por rota protegida - Decorator
@CurrentUser()para acessar usuário autenticado no controller - Refresh token com rotação
REST
- Versionamento:
/api/v1/<resource> - Padrão de resposta:
{ data, meta }para listas,{ data }para item único - Erros:
{ error, message, statusCode }via filtro global de exceções