Visualize pokémons e crie times
Primeiramente você precisa instalar os seguintes programas para poder utilizar a aplicação:
Após isso você pode clonar o repositório via HTTP com o comando:
git clone https://github.com/lprs110/pokemon-api.git
E para instalar as dependências:
yarn install
Para preparar o banco de dados e rodar a aplicação, você precisa apenas executar os seguintes comandos:
sudo chmod +x build.sh
./build.sh
Ao finalizar este comando, o MongoDB estará sendo executado na porta 27017 e a aplicação na porta 3333.
Caso você queira configurar manualmente, inicialmente precisa-se instalar o MongoDB em sua máquina. Caso você tenha o Docker, pode criar um container do MongoDB:
docker run --name mongodb -p 27017:27017 -d -t database
Após a incialização, é necessário popular o banco com dados dos pokémons, através do comando:
docker exec -i database sh -c 'mongoimport --db pokemonapi --collection pokemons --drop --jsonArray' < pokemon.json
Por fim, execute o seguinte comando para iniciar a aplicação em ambiente de desenvolvimento:
yarn dev
- Express
- Possibilita a construção de rotas da API.
- Escolhido por ser de fácil uso e pela afinidade com a biblioteca.
- MongoDB
- Banco de dados da aplicação, trabalhando em conjunto com a ORM Mongoose.
- Escolhido por ser um banco de dados de fácil utilização e configuração. A inclusão da ORM foi escolhida para facilitar ainda mais as consultas e construções dos schemas.
- DotEnv
- Utilizado para permitir a leitura de arquivos
.env
. - Escolhido por ser de fácil e uso e pela afinidade com a biblioteca.
- Utilizado para permitir a leitura de arquivos
- Celebrate
- Em conjunto com o Joi, é possível validar os campos passados nas requisições.
- Escolhido para ajudar nas validação dos campos, esta biblioteca pode ser executada com um middleware do express e assim interceptar a requisição para validar os dados (como verificar se os campos foram passados, se estão no formato adequado, etc).
- Sucrase
- Permite utilizar funções mais modernas do Javascript no Node.js, além de também compilar a aplicação.
- Escolhido para ajudar durante o desenvolvimento da API possibilitando utilizar import/export, porém é importante ressaltar que é precisar realizar o build da aplicação quando utiliza-o.
- Nodemon
- Utilizado em ambiente de desenvolvimento para reiniciar a aplicação quando alguma mudança é feita.
- Escolhido para ajudar durante o desenvolvimento da API.
- Eslint/Prettier
- Auxilia à manter padrões de código durante o desenvolvimento.
- Escolhido para ajudar durante o desenvolvimento da API.
- Jest
- Possibilita a execução de testes unitários.
- Escolhido por ser de fácil uso e pela afinidade com a biblioteca.
Para facilitar a leitura da documentação, a explicação sobre o código foi dividido em três arquivos, um para mostrar uma visão geral do código, outro para explicar alguns raciocínios adotados e outro para detalhar as rotas da aplicação.
Desenvolvido por Lucas Reis.