Pular para conteúdo

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-validator para validação e class-transformer para serialização
  • Swagger obrigatório: @ApiTags, @ApiOperation, @ApiResponse em todo controller

TypeORM

  • Migrations versionadas — sem synchronize: true em 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