Giter VIP home page Giter VIP logo

labecommerce-backend's Introduction

Conteúdo
  1. Sobre o projeto
  2. Instalação
  3. Exemplos de Requisições
  4. Contato

Sobre o projeto

Este projeto é um exemplo de um Back-End para uma loja virtual.

O banco de dados utilizado é o SQLite e a API foi construída usando o framework Express do Node JS. Este repositório é um exemplo de como construir uma estrutura de Back-End para uma aplicação de comércio eletrônico e pode ser usado como base para projetos futuros.

Este projeto é parte dos projetos realizados como atividade durante o bootcamp da Labenu.

(voltar para o topo)

Feito com

  • Typescript
  • Node
  • Express
  • SQLite

(voltar para o topo)

Instalação

  1. Clone o repositório:
    git clone https://github.com/vitorfontenele/labecommerce-backend.git
  2. Instale os pacotes NPM:
    npm install
  3. Para executar o projeto em modo de desenvolvimento:
    npm run dev

(voltar para o topo)

Exemplos de Requisições

Seguem exemplos de como utilizar a API criada neste projeto.

Get all users

// Request
// GET /users
// Response
// status 200 OK
[
    {
        id: "u001",
        name: "John Smith",
        email: "[email protected]",
        password: "Pass1",
        createdAt: "2023-01-26 23:49:33"
    },
    {...},
    {
        id: "u009",
        name: "Andrew Gonzalez",
        email: "[email protected]",
        password: "SecP@s2",
        createdAt: "2023-01-26 23:49:33"
    }
]

(voltar para o topo)

Create user

// Request
// POST /users
// body JSON
{
    "id": "u010",
    "name": "Daniel Henderson",
    "email": "[email protected]",
    "password": "passw00"
}
// Response
// status 201 CREATED
{
    message: "Cadastro realizado com sucesso",
    user: {
      id: "u010",
      name: "Daniel Henderson",
      email: "[email protected]",
      password: "passw00"
    }
}

(voltar para o topo)

Create product

// Request
// POST /products
// body JSON
{
    "id": "prod010",
    "name": "Joystick",
    "price": 150,
    "description": "Ultimate gaming experience.",
    "imageUrl": "https://dummy.com/joystick.jpg",
    "category": "Electronics"
}
// Response
// status 201 CREATED
{
    message: "Produto cadastrado com sucesso",
    product: {
      id: "prod010",
      name: "Joystick",
      price: 150,
      description: "Ultimate gaming experience.",
      imageUrl: "https://dummy.com/joystick.jpg",
      category: "Electronics"
    } 
}

(voltar para o topo)

Get all products funcionalidade 1

Retorna todos os produtos cadastrados.

// Request
// GET /products
// Response
// status 200 OK
[
    {
        id: "prod001",
        name: "Sunscreen",
        price: 10,
        description: "Designed to protect you from UV radiation.",
        imageUrl: "https://dummy.com/sunscreen.jpg",
        category: "Acessories"
    },
    {...},
    {
        id: "prod009",
        name: "Shoes",
        price: 50,
        description: "Comfortable and stylish.",
        imageUrl: "https://dummy.com/shoes.jpg",
        category: "Clothes and Shoes" 
    }
]

(voltar para o topo)

Get all products funcionalidade 2

Caso seja enviada uma query params (q) deve ser retornado o resultado da busca de produtos por nome.

// Request
// query params = q
// GET /products?q=phone
// Response
// status 200 OK
[
    {
        id: "prod006",
        name: "Smartphone",
        price: 600,
        description: "Stay connected and productive.",
        imageUrl: "https://dummy.com/smartphone.jpg",
        category: "Electronics"
    }
]

(voltar para o topo)

Edit product by id

// Request
// path params = :id
// PUT /products/prod002
// body JSON
{
  "description": "Your best friend in summer days.",
}
// Response
// status 200 OK
{
    message: "Produto atualizado com sucesso",
    product: {
        "id": "prod002",
        "name": "Sunglasses",
        "price": 15,
        "description": "Your best friend in summer days.",
        "imageUrl": "https://dummy.com/sunglasses.jpg",
        "category": "Acessories"
    }
}

(voltar para o topo)

Create purchase

// Request
// POST /purchases
// body JSON
{
    "id": "pur002",
    "buyer": "u001",
    "totalPrice": 25,
    "products": [
        {
            "id": "prod003",
            "name": "Blender",
            "price": 25,
            "description": "Blend and mix your ingredients with ease.",
            "imageUrl": "https://dummy.com/blender.jpg",
            "category": "Electronics",
            "quantity": 1
        }
    ]
}
// Response
// status 201 CREATED
{
    message: "Pedido realizado com sucesso"
}

(voltar para o topo)

Delete purchase by id

// Request
// path params = :id
// DELETE /purchases/pur002
// Response
// status 200 OK
{
    message: "Pedido cancelado com sucesso"
}

(voltar para o topo)

Get purchase by id

// Request
// path params = :id
// GET /purchases/pur001
// Response
// status 200 OK
{
    purchaseId: "pur001",
    buyerId: "u001",
    buyerName: "John Smith",
    buyerEmail: "[email protected]",
    totalPrice: 1500,
    createdAt: "2023-01-27 00:00:03",
    paid: 0,
    products: [
        {
            id: "prod006",
            name: "Smartphone",
            price: 600,
            description: "Stay connected and productive.",
            imageUrl: "https://dummy.com/smartphone.jpg",
            quantity: 1
        },
        {
            id: "prod007",
            name: "Laptop",
            price: 900,
            description: "Powerful and portable.",
            imageUrl: "https://dummy.com/laptop.jpg",
            quantity: 1
        }
    ]
}

(voltar para o topo)

Contato

GithubLinkedin

Link do Projeto: https://github.com/vitorfontenele/labecommerce-backend

(voltar para o topo)

labecommerce-backend's People

Contributors

vitorfontenele avatar

Watchers

 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.