Python FastAPI CRUD Endpoint
Python
#python
#fastapi
#crud
#api
Contoh CRUD endpoint dengan FastAPI, Pydantic model, dan dependency injection.
from fastapi import FastAPI, HTTPException, Depends
from pydantic import BaseModel
from typing import Optional
from datetime import datetime
app = FastAPI()
# In-memory store (replace with database)
db: dict[int, dict] = {}
counter = 0
class ItemCreate(BaseModel):
title: str
description: Optional[str] = None
price: float
class ItemResponse(ItemCreate):
id: int
created_at: datetime
@app.post("/items", response_model=ItemResponse, status_code=201)
def create_item(item: ItemCreate):
global counter
counter += 1
record = {**item.dict(), "id": counter, "created_at": datetime.now()}
db[counter] = record
return record
@app.get("/items")
def list_items(skip: int = 0, limit: int = 20):
items = list(db.values())
return {"items": items[skip:skip+limit], "total": len(items)}
@app.get("/items/{item_id}", response_model=ItemResponse)
def get_item(item_id: int):
if item_id not in db:
raise HTTPException(status_code=404, detail="Item not found")
return db[item_id]
@app.delete("/items/{item_id}", status_code=204)
def delete_item(item_id: int):
if item_id not in db:
raise HTTPException(status_code=404, detail="Item not found")
del db[item_id]
168 views
27 copies
1 hari yang lalu