Este projeto implementa um servidor de API REST utilizando Node.js e NestJS, retornando dados de usuários após aplicar transformações específicas, como ofuscação de e-mails e formatação de datas, conforme requisitos.
- Node.js
- NestJS
- Axios (para requisições HTTP)
- Jest (para testes unitários)
- Supertest (para testes de integração)
- Node.js instalado na máquina local
- Arquivo
.env
configurado (conforme.env.example
)
-
Clone o repositório para a sua máquina local:
git clone <URL_DO_REPOSITORIO>
-
Instale as dependências do projeto:
cd <NOME_DO_DIRETORIO> npm install
-
Crie um arquivo
.env
na raiz do projeto e defina as variáveis de ambiente necessárias:API_URL=http://localhost:3000
Primeiro inicie a api mock com
npm install -g json-server
cd config
json-server --watch db.json
Para rodar os testes execute
npx jest
Para iniciar o servidor:
npm start
O framework NestJs foi escolhido pela minah familiaridade com ele e por seus diversos benefícios e popularidade.
Algumas vantagens são:
-
Modularidade e Organização de Código: NestJS incentiva uma estrutura de código modular, o que facilita a organização do projeto em módulos distintos. Isso pode ser útil para separar a lógica de integração com a API, transformação de dados, manipulação de erros e outros aspectos do projeto.
-
Injeção de Dependência: A injeção de dependência (DI) é um padrão de design que torna o código mais testável e gerenciável. NestJS tem um poderoso sistema de DI embutido que pode simplificar a gestão das dependências no seu projeto.
-
Suporte para Middleware e Guards: NestJS oferece suporte integrado para middleware e guards, permitindo adicionar facilmente funcionalidades como autenticação, autorização e logging.
-
Testabilidade: NestJS é projetado com testabilidade em mente. Ele fornece utilitários para facilitar a criação de testes unitários e de integração.