/nest-poc

Estudando sobre Nest

Primary LanguageTypeScript

Prove of concept - NestJS

O que é NestJS?

Segundo a própria documentação, é um framework node.js progressivo para criar aplicações back-end. Assim como o "Angular", framework front-end desenvolvido pela Google, o Nest utiliza de uma arquitetura modular, ou seja, trabalha com módulos.

Neste exemplo vemos a criação do modulo "Person" e como ele é trabalhado na forma de um CRUD.

Para mim e para você (caso seja meu colega de equipe), este framework tem como vantagem justamente o que foi descrito acima, por se assemelhar muito com Angular, temos como vantagem o reeaproveitamento de conhecimento adquirido durante o processo de desenvolvimento.

Como executar essa POC

Primeiramente, é preciso que você instalado em sua máquina:

  • Node.js
  • NestJS
  • PostgreSQL (ou algum outro banco de dados relacional que você tenha dominio, mas lembre-se que será necessário alterar muitas coisas, então sugiro seguir com o Postgres mesmo)
  • Docker (opcional, mas recomendado)

E também ja me antecipo em dizer que foi utilizado o TypeORM, caso você queira conferir a sua documentação.

Caso você não tenha instalado o docker, será necessário seguir o seguinte passo a passo:

  • Navegue até o diretório onde você clonou este repositório;
  • Execute o comando npm install ou npm i (para os intimos);
  • Execute o comando npm run typeorm migration:run (para que a tabela "Persons" seja criado em seu banco de dados);
  • E por fim execute o comando npm run start:dev;

Caso você seja brabo (o manjador mesmo), e tenha docker instalado, faça:

  • docker compose up -d (esse -d mantem a aba do terminal liberado para uso sem trava-lo com log);

Endpoints

Como disse, essa POC é extremamente simples e temos os seguintes endpoins:

GET

  • / - é a raiz da nossa aplicação e ela retorna o famigerado "Hello World";
  • /person - retorna um array com todos os registros existentes da entidade "Person";
  • /person/:id - retorna um unico registro com base no id;

POST

  • /person - endpoint responsável por criar o registro da entidade "Person";

PATCH/UPDATE

  • /person/:id - endpoint responsável por atualizar o registro referente ao id da entidade "Person";

DELETE

  • /person/:id - endpoint responsável pela deleção do registro referente ao id da entidade "Person";

O que esta por vir?

Os proximos passos deste POC são:

  • Adicionar multi tenancy feature, para que a aplicação consiga acessar o banco de acordo com o codigo do cliente;
  • Iniciar o trabalho com environments;
  • Iniciar trabalhos com testes unitários;
  • Iniciar DevOps para facilitar deploy;

Está com dificuldades ou dúvidas sobre esse material?

  • Me chama no zap (só para conhecidos);
  • Me manda uma DM no aqui

Fontes bibliográficas brabas