Skip to content

WelissonLuca/ecommerce-api

Repository files navigation

Aplicação de uma RESP API utilizando Node.js e Express.js

📕 Índice


Sobre

Este projeto é uma RESP API de um e-commerce fictício, realizado durante o Gama Experience #37, o objetivo é aplicar os conhecimentos da arquitetura REST dentro de uma API. Utilizamos os métodos de listagem de produtos, busca por um produto especifico, postagem de um novo produto, atualização de produto, listagem de departamento e listagem associando cada departamento aos seus produtos.


Tecnologias


Iniciando

Pré-requisitos
  • Docker

    https://www.docker.com/products/docker-desktop
  • Docker-compose

    https://docs.docker.com/compose/
  • npm

    npm install npm -g
  • sequelize-cli

    npm install sequelize-cli -g
  • eslint

    https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint
  • prettier

    https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode

Instalação e uso

# Abra um terminal e copie este repositório com o comando
$ git clone https://github.com/WelissonLuca/ecommerce-api.git
# ou use a opção de download.

# Entre na pasta com 
$ cd ecommerce-api

# Instale as dependências
$ npm install ou yarn

# Inicie o docker-compose, para subir o container com mysql
$ docker-compose up -d # flag -d faz com que o container rode em segundo plano
# Verifique se o container esta rodando 
$ docker ps
# Caso não esteja rode o comando para iniciar ele
$ docker-compose start
# Crie o banco de dados e as tabelas utilizando os comandos
$ npx sequelize db:create # Criação do banco
$ npx sequelize db:migrate # Criação das tabelas
    
# Conexão com o banco de dados:
# altere o nome do arquivo .env.example para .env
# dentro dele passe suas credencias para conexão
# Caso va usar o docker não precisa alterar as credencias
# Popule o banco de dados usando o aquivo "seed.js":
$ npx sequelize db:seed:all 
# Rode a aplicação
$ npm start

Documentação da API

http://localhost:3000/api-docs/

Documentação Print

Exemplos

Departamentos requisições Para criar um departamento faça uma requisição do tipo POST na rota:
http://localhost:3000/departaments

Envie pela requisição os dados:

 "name": "Departament name"

Para listar todos os departamentos faça uma requisição do tipo GET na rota:

http://localhost:3000/departaments

Para listar todos os produtos cadastrados em um departamento especifico faça uma requisição do GET passando o id do departamento desejado para a rota:

http://localhost:3000/departaments/:id
Produtos Requisições Para criar um produto faça uma requisição do tipo POST na rota:
http://localhost:3000/products

Envie pela requisição os dados:

   "name": "product name",
   "description": "product description",
   "price": "1000",
   "is_available": "sim",
   "amount": 4,
   "departament": 1

Para listar todos os produtos faça uma requisição do tipo GET na rota:

http://localhost:3000/products

Para listar um produto especifico faça uma requisição do tipo GET passando o id do produto desejado para a rota:

http://localhost:3000/product/:id

Para atualizar um produto faça uma requisição do tipo PUT na rota:

http://localhost:3000/products

Envie pela requisição os dados:

   "name": "product name",
   "description": "product description",
   "price": "1000",
   "is_available": "sim",
   "amount": 4,
   "departament": 1

Contribuições

  1. Faça um Fork do projeto
  2. Crie uma Branch para sua Feature (git checkout -b feature/FeatureIncrivel)
  3. Adicione suas mudanças (git add .)
  4. Comite suas mudanças (git commit -m 'Adicionando uma Feature incrível!)
  5. Faça o Push da Branch (git push origin feature/FeatureIncrivel)
  6. Abra uma Pull Request

Licença

Distribuído sob a licença MIT. Veja LICENSE para mais informações.

Contatos


@inglyd

@WelissonLuca

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •