@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,@Providerpara estruturar seu código - Router Integrado: Decorators
@Get,@Post,@Put,@Deletepara definir rotas - API Gateway: Proxy reverso integrado para microsserviços
- Documentação Automática: Endpoint
/documentationgerado 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 watchnpm run build- Compila TypeScriptnpm run deploy- Build e publica no npm
Licença
UNLICENSED