main.py•1.51 kB
from fastapi import FastAPI
from pydantic import BaseModel
from typing import Dict, Union
from fastapi_mcp import FastApiMCP
import uvicorn
app = FastAPI()
class Item(BaseModel):
name: str
description: Union[str, None] = None
price: float
tax: Union[float, None] = None
items: Dict[int, Item] = {}
next_item_id: int = 1
@app.get("/")
async def root():
return {"message": "Olá, Mundo!"}
@app.post("/items/")
async def create_item(item: Item):
global next_item_id
item_id = next_item_id
items[item_id] = item
next_item_id += 1
return {"item_id": item_id, **item.dict()}
@app.get("/items/")
async def read_all_items():
return items
@app.get("/items/{item_id}")
async def read_item(item_id: int):
if item_id not in items:
return {"error": "Item not found"}
return items[item_id]
@app.put("/items/{item_id}")
async def update_item(item_id: int, item: Item):
if item_id not in items:
return {"error": "Item not found"}
items[item_id] = item
return {"item_id": item_id, **item.dict()}
@app.delete("/items/{item_id}")
async def delete_item(item_id: int):
if item_id not in items:
return {"error": "Item not found"}
del items[item_id]
return {"message": "Item deleted successfully"}
@app.get("/setup")
async def setup_endpoint():
return {"message": "Endpoint de setup executado com sucesso!"}
mcp = FastApiMCP(app)
mcp.mount()
if __name__ == "__main__":
uvicorn.run(app, host="127.0.0.1", port=8000)