Rotas e tags

Configuração centralizada de rotas com RouterConfigBase.

Rotas e tags OpenAPI são centralizadas em classes de configuração, evitando strings duplicadas nos controllers.

typescript
export abstract class RouterConfigBase {
  protected constructor(
    private readonly _tag: string,
    private readonly _group: string,
  ) {}

  get group() {
    return this._group;
  }

  get tag() {
    return this._tag;
  }
}
  • group — prefixo de rota passado ao @Controller() do NestJS (ex.: /person).
  • tag — agrupamento no Swagger/Scalar (ex.: Person).
typescript
class PersonRouterConfig extends RouterConfigBase {
  constructor() {
    super('Person', '/person');
  }
}

export const PERSON_ROUTER_CONFIG = new PersonRouterConfig();

Todos os controllers de Person compartilham a mesma configuração:

typescript
@Controller(PERSON_ROUTER_CONFIG)
export class CreatePersonController implements IController<...> { ... }

@Controller(PERSON_ROUTER_CONFIG)
export class ReadManyPersonController implements IController<...> { ... }

Isso agrupa os endpoints sob /person e a tag Person na documentação interativa.

Método Rota Controller
POST /person CreatePersonController
GET /person ReadManyPersonController
GET /person/:id ReadPersonController
PUT /person UpdatePersonController
DELETE /person/:id DeletePersonController
  1. Crie src/host/controllers/<recurso>/router.config.ts.
  2. Estenda RouterConfigBase com tag e prefixo desejados.
  3. Exporte uma instância constante (ex.: PRODUCT_ROUTER_CONFIG).
  4. Use @Controller(PRODUCT_ROUTER_CONFIG) em todos os controllers do recurso.

Koala Nest

Facilitador para criar APIs NestJS com arquitetura DDD. Código copiado para o seu repositório — legível, adaptável e sob seu controle.

Creator

igordrangel.com.br

Design, back-end e estratégia de produto.

Comandos rápidos

CLI global e scripts no projeto gerado

  • bun install -g @koalarx/nest
  • kl-nest new
  • kl-nest add cache
  • bun run migration:run # template CRUD
  • kl-nest --help
© 2026 Koala NestFeito para desenvolvedores NestJS e fluxos assistidos por IA.