API REST construída com Django e Django REST Framework para gerenciamento de livros, categorias e pedidos.
- Python 3.12+
- Poetry
# Clone o repositório
git clone https://github.com/Reinaldo-Sn/bookstore1.git
cd d-bookstore
# Instale as dependências
poetry install
# Ative o ambiente virtual
poetry shell# Rode as migrations
poetry run python manage.py migrate
# Crie um superusuário (opcional)
poetry run python manage.py createsuperuserpoetry run python manage.py runserverAcesse em: http://localhost:8000
Painel admin: http://localhost:8000/admin
Base URL: http://localhost:8000/bookstore/v1/
| Método | Endpoint | Descrição | Auth |
|---|---|---|---|
| GET | /product/ |
Lista todos os produtos | Token |
| POST | /product/ |
Cria um produto | Token |
| GET | /product/{id}/ |
Detalha um produto | Token |
| DELETE | /product/{id}/ |
Remove um produto | Token |
| Método | Endpoint | Descrição | Auth |
|---|---|---|---|
| GET | /category/ |
Lista todas as categorias | Não |
| POST | /category/ |
Cria uma categoria | Não |
| GET | /category/{id}/ |
Detalha uma categoria | Não |
| DELETE | /category/{id}/ |
Remove uma categoria | Não |
| Método | Endpoint | Descrição | Auth |
|---|---|---|---|
| GET | /order/ |
Lista todos os pedidos | Não |
| POST | /order/ |
Cria um pedido | Não |
| GET | /order/{id}/ |
Detalha um pedido | Não |
| DELETE | /order/{id}/ |
Remove um pedido | Não |
Os endpoints de produto exigem Token no header:
Authorization: Token <seu_token>
# Rodar todos os testes
poetry run python manage.py test
# Rodar com output detalhado
poetry run python manage.py test --verbosity=2
# Rodar por app
poetry run python manage.py test product
poetry run python manage.py test orderproduct — viewsets
test_get_all_products— lista produtos paginadostest_get_product— detalha produto por idtest_create_product— cria produto com categoriatest_delete_product— remove produto e confirma exclusão
product — category viewset
test_get_all_category— lista categorias paginadastest_create_category— cria categoria e confirma no banco
order — viewsets
test_order— lista pedidos com produtos e categorias aninhadostest_get_order— detalha pedido por idtest_create_order— cria pedido com produto e usuáriotest_delete_order— remove pedido e confirma exclusão