Documentação da API

Índice

  1. Instruções de Configuração
  2. Endpoints
  3. Postman Documentation

Instruções de Configuração

Requisitos

  • Python 3.x
  • Django 4.x
  • Django Rest Framework
  • SQLite (padrão)

Como Rodar o Projeto

  1. Clone o repositório:

    git clone https://github.com/ImGlic/desafio-sesatech.git
    cd desafio-sesatech
  2. Crie um ambiente virtual:

    python -m venv venv
    venv\Scripts\activate
  3. Instale as dependências:

    pip install -r requirements.txt
  4. Realize as migrações do banco de dados:

    python manage.py makemigrations
    python manage.py migrate
  5. Carregue os dados na base de dados:

    python manage.py seed_products
  6. Inicie o servidor de desenvolvimento:

    python manage.py runserver

Agora, a API estará acessível em http://localhost:8000/.


Endpoints

Listar Produtos Disponíveis

  • URL: /api/products/
  • Método: GET
  • Descrição: Lista todos os produtos disponíveis para venda (que ainda não foram vendidos).

Exemplo de Requisição:

curl -X GET http://localhost:8000/api/products/

Criar uma Venda

  • URL: /api/sales/
  • Método: POST
  • Descrição: Cria uma nova venda com os produtos selecionados.

Exemplo de Requisição:

curl -X POST http://localhost:8000/api/sales/ -H "Content-Type: application/json" -d '{ "total": 100.00, "Products": [1, 2, 3] }'

Listar Vendas

  • URL: /api/sales/
  • Método: GET
  • Descrição: Lista todas as vendas realizadas.

Exemplo de Requisição:

curl -X GET http://localhost:8000/api/sales/

Obter Detalhes de uma Venda

  • URL: /api/sales/{id}/
  • Método: GET
  • Descrição: Exibe os detalhes de uma venda específica com base no ID.

Exemplo de Requisição:

curl -X GET http://localhost:8000/api/sales/1/

Adicionar Produto a uma Venda

  • URL: /api/sales/{id}/add-product/
  • Método: POST
  • Descrição: Adiciona novos produtos a uma venda existente.

Exemplo de Requisição:

curl -X POST http://localhost:8000/api/sales/1/add-product/ -H "Content-Type: application/json" -d '{ "Products": [4, 5] }'

Cancelar uma Venda

  • URL: /api/sales/{id}/cancel/
  • Método: POST
  • Descrição: Cancela uma venda existente.

Exemplo de Requisição:

curl -X POST http://localhost:8000/api/sales/1/cancel/

Documentação Swagger

Postman Documentation

  • Para mais informações e testes detalhados, você pode acessar a documentação no Postman através deste link: Documentação Postman