dina1/docker_implementation
0
1from fastapi import FastAPI, HTTPException2from pydantic import BaseModel3from typing import List4 5app = FastAPI(6 title="FastAPI CRUD Example",7 description="A simple CRUD API with FastAPI",8 version="1.0.0",9 docs_url="/docs",10 redoc_url="/redoc"11)12 13items = []14 15class Item(BaseModel):16 id: int17 name: str18 description: str = None19 20@app.get("/")21async def root():22 return {"message": "Welcome to FastAPI CRUD API! Visit /docs for Swagger UI."}23 24@app.get("/items", response_model=List[Item])25async def get_items():26 return items27 28@app.post("/items", response_model=Item)29async def add_item(item: Item):30 if any(i.id == item.id for i in items):31 raise HTTPException(status_code=400, detail="Item ID already exists")32 items.append(item)33 return item34 35@app.put("/items/{item_id}", response_model=Item)36async def update_item(item_id: int, updated_item: Item):37 for index, item in enumerate(items):38 if item.id == item_id:39 items[index] = updated_item40 return updated_item41 raise HTTPException(status_code=404, detail="Item not found")42 43@app.delete("/items/{item_id}")44async def delete_item(item_id: int):45 for item in items:46 if item.id == item_id:47 items.remove(item)48 return {"message": "Item deleted"}49 raise HTTPException(status_code=404, detail="Item not found")