dev-gsilv / futurabeautyhubapi

Projeto de API desenvolvido no módulo "Desenvolvimento Web - intermediário", do curso "Vem Ser Tech - ADA/iFood"

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Futura Beauty Hub

API para marketplace de cosméticos, produtos de beleza e de higiêne. Escrita na linguagem Node.js e no framework Express.js, com banco de dados MongoDB.



Rodando localmente

  1. Clone o repositório
git clone https://github.com/dev-gsilv/futurabeutyhubapi
  1. Instale as dependências
  npm install
  1. Crie um banco de dados gratuito no MongoDB Atlas, clique aqui. Veja um tutorial aqui;
  2. Na raiz do projeto clonado, crie um arquivo de variáveis de ambiente .env;
  3. Adicione as seguintes variáveis de ambiente:
  • DB_USER: nome de usuário de seu banco de dados MongoDB;
  • DB_PASS: senha de seu banco de dados MongoDB;
  • DOMINIO_CLUSTER: nome de domínio do cluster de seu banco de dados MongoDB. Semelhante a clustername0.xmwufns.mongodb.net;
  • JWT_SECRET: uma string aleatória para configuração do token de acesso JWT.

Exemplo do conexion string fornecido pelo MongoDB. conexion_string

Exemplo de preenchimento do arquivo .env

exemplo_arq_env

  1. Inicie o servidor
  npm start
  1. Sua API estará rodando localmente, teste a resposta do servidor aqui.


Documentação da API

Acesso via Basic Auth

  POST /login
Parâmetro Tipo Descrição
email string Obrigatório. E-mail e identificação única do usuário
senha string Obrigatório. Senha do usuário

Criar um novo usuário

  POST /registrar
Parâmetro Tipo Descrição
nome string Obrigatório. Nome do usuário.
email string Obrigatório. E-mail e identificação única do usuário
senha string Obrigatório. Senha do usuário

Criar um novo produto

  POST /produtos

Autenticação via token JWT*

Parâmetro Tipo Descrição
nome string Obrigatório. Nome do produto.
marca string Marca do produto.
ingredientes string Composição do produto.
indicacao string Indicações de uso.
volume string Volume ou peso do produto.
preco decimal Obrigatório. Valor decimal do produto.
disponibilidade boolean Obrigatório. Indicador de disponibilidade do produto.
categoria string Obrigatório. Categoria(s) do produto.
imagem string Obrigatório. Imagem ilustrativa do produto.

Buscar os dados de um ou mais produtos

  GET /produtos
Parâmetro Tipo Descrição
categoria string Categoria do produto. Usado isoladamente ou em associação com idUsuario
idUsuario string ID do usuário criador do produto. Usado isoladamente ou em associação com categoria

Buscar a imagem de um produto

  GET /produtos/:id/imagem
Parâmetro Tipo Descrição
idProduto string ID do produto.

Editar os dados de um produto

  PUT /produtos/:id

Autenticação via token JWT*

Parâmetro Tipo Descrição
nome string Nome do produto.
marca string Marca do produto.
ingredientes string Composição do produto.
indicacao string Indicações de uso.
volume string Volume ou peso do produto.
preco decimal Valor decimal do produto.
disponibilidade boolean Indicador de disponibilidade do produto.
categoria string Categoria(s) do produto.
imagem string Imagem ilustrativa do produto.

Remover um produto

  DELETE /produtos/:id

Autenticação via token JWT*

Parâmetro Tipo Descrição
idProduto string ID do produto.

*Para rotas com autenticação por token

Tipo Chave Valor
Header authorization JWT fornecido no login


Autores

About

Projeto de API desenvolvido no módulo "Desenvolvimento Web - intermediário", do curso "Vem Ser Tech - ADA/iFood"


Languages

Language:JavaScript 100.0%