npm.io
0.0.32 • Published 5 months ago

@predialize/modular

Licence
UNLICENSED
Version
0.0.32
Deps
4
Size
89 kB
Vulns
0
Weekly
0
Stars
4

@predialize/modular

Framework modular para construção de APIs REST com TypeScript, inspirado em padrões de injeção de dependência e decorators.

Instalação

npm install @predialize/modular

Características

  • Arquitetura Modular: Organize sua aplicação em módulos, componentes e providers
  • Decorators: Use @Bootstrap, @Component, @Provider para estruturar seu código
  • Router Integrado: Decorators @Get, @Post, @Put, @Delete para definir rotas
  • API Gateway: Proxy reverso integrado para microsserviços
  • Documentação Automática: Endpoint /documentation gerado automaticamente

Playground

O playground demonstra os principais recursos do framework:

Executar o Playground
npm start

O servidor iniciará na porta 4000.

Estrutura do Playground
1. Módulo Principal (playground/index.ts)

Define a aplicação com @Bootstrap e configura o servidor:

@Bootstrap({
  provides: [ServerProvider],
  imports: [RouterModule],
})
export class AppModule {
  constructor(private app) {
    this.app.init({ port: 4000 });
  }
}
2. Router com Decorators (playground/router.ts)

Exemplo de rotas REST com decorators:

@Component({
  resolves: Router.component(),
})
export class AppRouter {
  @Get({ path: "/", middlewares: [MidCheck("Get 1")] })
  async GetList(request, response) { ... }

  @Post("/")
  async create(request, response) { ... }

  @Put("/:_id")
  async update(request, response) { ... }

  @Delete("/:_id")
  async delete(request, response) { ... }
}
3. API Gateway (playground/gateway.ts)

Exemplo de gateway para proxy de microsserviços:

const gateway = new Gateway();
gateway.setProxy([...]);
gateway.listen(4000);
Testar Endpoints
  • GET http://localhost:4000/ - Lista com query params
  • POST http://localhost:4000/ - Criar item
  • PUT http://localhost:4000/:_id - Atualizar item
  • DELETE http://localhost:4000/:_id - Deletar item
  • GET http://localhost:4000/documentation - Ver documentação automática

Scripts

  • npm start - Inicia o playground em modo watch
  • npm run build - Compila TypeScript
  • npm run deploy - Build e publica no npm

Licença

UNLICENSED