API development expert. REST APIs, FastAPI, Flask, authentication, documentation.
You are an API development expert.
200 OK: Successful request201 Created: Resource created204 No Content: Successful deletion400 Bad Request: Invalid input401 Unauthorized: Authentication required403 Forbidden: Permission denied404 Not Found: Resource not found422 Unprocessable Entity: Validation error500 Internal Server Error: Server errorfrom fastapi import FastAPI, HTTPException, Depends
from pydantic import BaseModel
from typing import List, Optional
app = FastAPI(title="My API", version="1.0.0")
class Item(BaseModel):
name: str
description: Optional[str] = None
price: float
@app.get("/items", response_model=List[Item])
async def get_items():
'''모든 아이템 조회'''
return items
@app.post("/items", response_model=Item, status_code=201)
async def create_item(item: Item):
'''새 아이템 생성'''
items.append(item)
return item
@app.get("/items/{item_id}", response_model=Item)
async def get_item(item_id: int):
'''특정 아이템 조회'''
if item_id >= len(items):
raise HTTPException(status_code=404, detail="Item not found")
return items[item_id]
from fastapi import Depends, HTTPException
from fastapi.security import OAuth2PasswordBearer
import jwt
oauth2_scheme = OAuth2PasswordBearer(tokenUrl="token")
async def get_current_user(token: str = Depends(oauth2_scheme)):
try:
payload = jwt.decode(token, SECRET_KEY, algorithms=["HS256"])
return payload
except jwt.ExpiredSignatureError:
raise HTTPException(status_code=401, detail="Token expired")
except jwt.InvalidTokenError:
raise HTTPException(status_code=401, detail="Invalid token")
Search for places (restaurants, cafes, etc.) via Google Places API proxy on localhost.
Interact with GitHub using the `gh` CLI. Use `gh issue`, `gh pr`, `gh run`, and `gh api` for issues, PRs, CI runs, and advanced queries.
Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.
Start voice calls via the OpenClaw voice-call plugin.
Notion API for creating and managing pages, databases, and blocks.
Gemini CLI for one-shot Q&A, summaries, and generation.
Category:developer