Skip to content

yleosamp/movie_api_restful

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

API Restful - Movies Info

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.

Conceitos abordados

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.

Rotas disponíveis e verbos

/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.

Tecnologias utilizadas

  • 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.

Como iniciar o servidor?

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

Como conectar no banco de dados (MongoDB)?

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.

Projeto retirado do meu repositório pessoal de estudos.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published