- Python 3.x
- Django 4.x
- Django Rest Framework
- SQLite (padrão)
-
Clone o repositório:
git clone https://github.com/ImGlic/desafio-sesatech.git cd desafio-sesatech
-
Crie um ambiente virtual:
python -m venv venv venv\Scripts\activate
-
Instale as dependências:
pip install -r requirements.txt
-
Realize as migrações do banco de dados:
python manage.py makemigrations python manage.py migrate
-
Carregue os dados na base de dados:
python manage.py seed_products
-
Inicie o servidor de desenvolvimento:
python manage.py runserver
Agora, a API estará acessível em http://localhost:8000/
.
- 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/
- 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] }'
- 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/
- 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/
- 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] }'
- 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/
- Para visualizar a documentação interativa via Swagger, acesse o seguinte link: Swagger Documentation
- Para mais informações e testes detalhados, você pode acessar a documentação no Postman através deste link: Documentação Postman