Olá! Venho introduzir uma API Restful criada para aprender os conceitos dos verbos HTTP(GET, PUT, PATCH, DELETE), e ligar a API a um banco de dados não relacional, neste caso, o MongoDB.
Neste projeto foram abordados conceitos como as Rotas Complexas, Router Handler, Middlewares, arquivo de configuração, DotENV para esconder dados sensíveis e principalmente Logs de erros.
/api/test
— [GET] Rota que retorna um status 200(OK) caso a API esteja funcionando corretamente.
/api/movie
— [POST] Rota que aceita um JSON para adição de filme. Campos a serem preenchidos: (stars opcional)
{
"title": "String",
"rating": number >= 0 && <=10,
"description": "String",
"director": "String",
"poster": "URL",
"stars": ["Array1", "Value2"]
}
/api/movie/:id
— [GET] Rota que retorna um JSON sobre o filme escolhido. (Troque :id pelo ID do filme, gerado automaticamente pelo MongoDB.
/api/movie
— [GET] Rota que retorna um JSON com os dados de todos os filmes. ATENÇÃO: se difere da rota com o verbo POST. Uma aceita dados e outra retorna dados.
/api/movie/:id
— [DELETE] Rota que aceita um parâmetro de ID(substituir no link pelo :id). Ao colocar o ID do filme, ele será completamente deletado.
/api/movie/:id
— [PATCH] Rota que aceita um JSON com todos os campos do filme, para que seja atualizado as informações. Não esqueça de substituir o :id pelo ID do filme desejado.
- Express -- Principal framework para criar o servidor back-end e fazer a API
- Mongoose -- Utilizado para conectar com o banco do MongoDB
- Config -- Utilizado para guardar as configurações do banco de dados e do logger de erros.
- DotENV -- Utilizado para esconder informações sensíveis do GitHub.
- Morgan com Winston -- São utilizados juntos para fazer os logs de erros de forma mais estilizada e controlada.
- Express Validator -- Usado para fazer as validações de Schema, para que todos os dados possam ser enviados corretamente ao MongoDB.
Para iniciar o servidor, primeiramente é preciso instalar as dependências do projeto: (Necessário NodeJS e NPM instalados no computador)
npm install
Após, podemos rodar o comando de execução:
npm run dev
Para se conectar no banco de dados, primeiramente deve-se criar um arquivo chamado ".env" na pasta principal do projeto, com as seguintes informações dentro:
DB_USER=seuUsuario
DB_PASS=suaSenha
Após colocar suas informações no arquivo, acesse config > default.ts
e altere o campo "dbUri", mas mantenha as variáveis "dbUser" e "dbPass" na posição correta.