Um simples web framework feito em TypeScript.
O ProtonType tem como objetivo tornar simples e agradável o desenvolvimento de APIs REST.
Instalação
npm install protontype --save
Models
Usa TypeORM por padrão para manipulação de banco de dados. Mas pode ser usado qualquer framework.
@Entity() export class TasksModel { @PrimaryGeneratedColumn() id: number; @Column({ nullable: true }) title: string; @Column() done: boolean; @Column() userId: number; }
Middlewares
Suporta implementação de middlewares
export class TasksMiddleware extends BaseMiddleware { @Middleware() printTaskTitle(params: MiddlewareFunctionParams) { cosole.log(params.req.body.title); params.next(); } }
Router
Rotas básicas de CRUD já implementadas nos CrudRouter
@RouterClass({ baseUrl: "/tasks", model: TasksModel, middlewares: [new TasksMiddleware()] }) export class TasksRouter extends CrudRouter { /* GET / - Lista todos registros POST / - Cria um registro GET /:id - Consulta um registro PUT /:id - Atualiza um registro DELETE /:id - Remove um registro */ //Novas rotas customizadas .... }
Ou pode implementar rotas customizadas
@RouterClass({ baseUrl: "/tasks", model: TasksModel, middlewares: [new TasksMiddleware()] }) export class TasksRouter extends BaseRouter { @Route({ endpoint: '/test/msg', method: Method.GET, middlewares: [new OtherMiddleware()] }) routeTest(params: RouterFunctionParams) { console.log("Hello!"); } }
Acessando o banco de dados
let tasksRepository = TypeORMDB.getBD().getRepository(TasksModel); let tasks = await tasksRepository.find();
Iniciando a aplicação
new ProtonApplication() .addRouterAs(TasksRouter) .addMiddlewareAs(SomeoneGlobalMiddleware) .start();
Exemplos
Versão de desenvolvimento
npm install protontype@dev --save