API REST modelo.
- Typescript, Node js, Express e TypeORM para a construção da API.
- PostgreSQL para o banco de dados.
- Docker para containerização.
- Swagger para documentação.
- Jest para os testes unitários.
Atenção, Este projeto é executado dentro do Docker, certifique-se de ter instalado em sua máquina!
- Clone este repositório.
- No terminal execute o comando, para subir as imagens necessárias:
docker compose up
- A aplicação estará disponível no enderepo
localhost:3000verifique a documentação das rotas disponíveis no linklocalhost:3000/api-docs.
- Clone este repositório.
- Execute o comando para instalar as dependencias:
npm install
- Para executar a aplicação em modo de desenvolvedor execute o comando:
npm run dev
Opcional
- caso queira inserir dados dummy no banco para testar execute o comando:
npm run seed
- Para testar a aplicação você pode utilizar algum software externo como Postman, Insominia, etc.
- Outra opção é utilizar o Vs code, instalar a extensão REST Client e executar os comandos localizados no arquivo
test.rest.
build: Compila o código TypeScript para JavaScript e gera os arquivos na pasta dist.
npm run build
dev: Inicia a aplicação em modo de desenvolvimento, recompilando automaticamente sempre que houver alterações no código. Usa ts-node-dev e carrega as variáveis do .env.
npm run dev
seed: Executa os scripts de seed para popular o banco de dados com dados iniciais.
npm run seed
test: Executa os testes usando jest e gera um relatório de cobertura de testes.
npm run test
start: Compila o código e inicia a aplicação em modo de produção.
npm run start
docker-build: Reconstrói as imagens Docker sem usar o cache. Ideal para quando há alterações no Dockerfile ou nas dependências (package.json).
npm run docker-build
docker: Sobe os containers Docker e, em seguida, limpa as imagens dangling (não utilizadas) para liberar espaço.
npm run docker
docker-rebuild: Combina os scripts docker-build e docker. Primeiro, reconstrói as imagens sem cache, depois sobe os containers e limpa as imagens dangling.
npm run docker-rebuild
...