Git Product home page Git Product logo

ecommerce-api's Introduction

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

ecommerce-api's People

Contributors

welissonluca avatar renovate-bot avatar inglyd avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.