Uma API desenvolvida para gerenciar cardápios de restaurantes, clientes e pedidos. Permite a criação, leitura, atualização e exclusão (CRUD) de dados, com armazenamento em banco de dados MongoDB e manipulação de dados usando Beanie ODM.
- Gerenciar menu (criar, listar, atualizar e excluir pratos).
- Gerenciar clientes (adicionar e listar clientes, excluir).
- Registrar e listar pedidos com cálculo automático do valor total.
- Persistência de dados em SQLite.
- Python 3.12: Linguagem principal.
- FastAPI: Framework para criação da API.
- Uvicorn: Servidor ASGI para rodar a aplicação.
- SQLite: Banco de dados para persistência.
- dotenv: Para gerenciamento de variáveis de ambiente.
Certifique-se de ter instalado:
- Python 3.10 ou superior
- Git
-
Clone o repositório:
git clone https://github.com/seu-usuario/API_Cardapio_Restaurantes.git cd API_Cardapio_Restaurantes
-
Crie e ative um ambiente virtual:
python -m venv .venv source .venv/bin/activate # Linux/MacOS .venv\Scripts\activate # Windows
-
Instale as dependências:
pip install -r requirements.txt
-
Configure o ambiente criando um arquivo
.env
na raiz do projeto:MONGO_URI=sua_uri_do_mongodb DB_NAME=API_Cardapio_Restaurante
-
Inicie a aplicação com o Uvicorn:
uvicorn app.main:app --reload
-
Acesse a documentação interativa da API:
.
├── app
│ ├── models
│ │ ├── modelagem.py # Modelos de dados (Cliente, Menu, Pedido)
│ ├── routes
│ │ ├── menu_routes.py # Rotas relacionadas ao menu
│ │ ├── pedido_routes.py # Rotas relacionadas ao pedido
│ │ ├── cliente_routes.py # Rotas relacionadas ao cliente
│ ├── services
│ │ ├── menu_service.py # Serviço de manipulação do menu
│ │ ├── pedido_service.py # Serviço de manipulação de pedidos
│ │ ├── cliente_service.py # Serviço de manipulação de clientes
│ ├── db.py # Configuração do banco de dados
│ └── main.py # Ponto de entrada da aplicação
├── requirements.txt # Dependências do projeto
├── README.md # Documentação do projeto
└── .env # Variáveis de ambiente
Método | Endpoint | Descrição |
---|---|---|
GET | /menu |
Listar todos os itens do cardápio. |
POST | /menu |
Adicionar um item ao cardápio. |
PUT | /menu/{id} |
Atualizar um item do cardápio. |
DELETE | /menu/{id} |
Excluir um item do cardápio. |
Método | Endpoint | Descrição |
---|---|---|
GET | /cliente |
Listar todos os itens do cardápio. |
POST | /cliente |
Adicionar um item ao cardápio. |
PUT | /cliente/{id} |
Atualizar um item do cardápio. |
DELETE | /cliente/{id} |
Excluir um item do cardápio. |
Método | Endpoint | Descrição |
---|---|---|
GET | /pedido |
Listar todos os itens do cardápio. |
POST | /pedido |
Adicionar um item ao cardápio. |
PUT | /pedido/{id} |
Atualizar um item do cardápio. |
DELETE | /pedido/{id} |
Excluir um item do cardápio. |
Criação de pedido:
{
"cliente_id": "id",
"itens_ids": ["id", "id"],
"status": "pendente"
}