Sobre este projeto | Tecnologias | Recurso extras do projeto | Arquitetura de multiprocessos | Instalação | Documentação, CURL, Insomnia e postman. | License
Teste de habilidade.
- Jest - UnitTest
- JWT - JSON WEB TOKEN
- Axios - HTTP Client
- ESlint - Linter
- Prettier - Code Formatter
- typescript - Super Javascript
- swagger - Documentation
- Arquitetura de multiprocessos.
A API está configurada para funcionar com passa em processos Primary e Workers, criando um processo Primary na inicialização e a partir daí criamos processos Workers dependendo de quantos CPU 's estão disponíveis. Isso é muito interessante para API que vão receber milhares de acessos simultâneos, pois a carga é dividida para cada processo, assim não travado, caso um processo Worker se encerre a API está configurada para criar outro.
Installing and run at docker
Uma imagem docker foi disponibilizada no docker hub, acessando: https://hub.docker.com/repository/docker/colgate13/egadcep
git clone ...
docker build . -t <your username>/egadcep
docker images
docker run -p 3000:3000 -d <your username>/egadcep
docker ps
docker logs <container id>
> Primary process started
> Server Primary running in process - 1981
> Server Forking process, creating a Worker process - 4
Server started on port 5000
Server started on port 5000
Server started on port 5000
Server started on port 5000
Installing and run
install node16 and npm;
git clone ...
npm install
npm run build
pm2 start ecosystem.config.js
> Primary process started
> Server Primary running in process - 1981
> Server Forking process, creating a Worker process - 4
Server started on port 5000
Server started on port 5000
Server started on port 5000
Server started on port 5000
Um arquivo .har está disponível na pasta files, podendo ser importado para o Insomnia. Caso a aplicação esteja online só é preciso acessar a rota /docs para ter acesso a documentação.
Use o comando curl abaixo para testar ou utilize o importando-o no Insomnia ou Postman
Criando TOKEN
curl --request POST \
--url http://localhost:5000/cep/create/token \
--header 'Content-Type: application/json' \
--data '{
"email": "email@gmail.com"
}'
With token do..
curl --request POST \
--url http://localhost:5000/cep \
--header 'Authorization: Bearer ${{TOKEN}}\
--data '{
"cep": "77410100"
}'
Exemplo real, utilizando token existente
curl --request POST \
--url http://localhost:5000/cep \
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJlbWFpbCI6ImdhYnJlaWxiYXJyb3MxM0BnbWFpbC5jb20iLCJpYXQiOjE2NTMzNDkyMTksImV4cCI6MTY1NTk0MTIxOSwic3ViIjoiZ2FicmVpbGJhcnJvczEzQGdtYWlsLmNvbSJ9.2PRXsa0z9_E8dL2A_h5bFKwV6uK3pE19X4N4xI1ytTI' \
--header 'Content-Type: application/json' \
--data '{
"cep": "77410100"
}'
curl --request GET \
--url http://localhost:5000/docs
MIT LICENSE