fastapi-router-py

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

FastAPI Router

FastAPI 路由

Create FastAPI routers following established patterns with proper authentication, response models, and HTTP status codes.
创建遵循既定模式的FastAPI路由,包含完善的认证、响应模型和HTTP状态码。

Quick Start

快速开始

Copy the template from assets/template.py and replace placeholders:
  • {{ResourceName}}
    → PascalCase name (e.g.,
    Project
    )
  • {{resource_name}}
    → snake_case name (e.g.,
    project
    )
  • {{resource_plural}}
    → plural form (e.g.,
    projects
    )
assets/template.py复制模板并替换占位符:
  • {{ResourceName}}
    → 大驼峰命名(例如:
    Project
  • {{resource_name}}
    → 小写下划线命名(例如:
    project
  • {{resource_plural}}
    → 复数形式(例如:
    projects

Authentication Patterns

认证模式

python
undefined
python
undefined

Optional auth - returns None if not authenticated

可选认证 - 未认证时返回None

current_user: Optional[User] = Depends(get_current_user)
current_user: Optional[User] = Depends(get_current_user)

Required auth - raises 401 if not authenticated

必填认证 - 未认证时抛出401错误

current_user: User = Depends(get_current_user_required)
undefined
current_user: User = Depends(get_current_user_required)
undefined

Response Models

响应模型

python
@router.get("/items/{item_id}", response_model=Item)
async def get_item(item_id: str) -> Item:
    ...

@router.get("/items", response_model=list[Item])
async def list_items() -> list[Item]:
    ...
python
@router.get("/items/{item_id}", response_model=Item)
async def get_item(item_id: str) -> Item:
    ...

@router.get("/items", response_model=list[Item])
async def list_items() -> list[Item]:
    ...

HTTP Status Codes

HTTP状态码

python
@router.post("/items", status_code=status.HTTP_201_CREATED)
@router.delete("/items/{id}", status_code=status.HTTP_204_NO_CONTENT)
python
@router.post("/items", status_code=status.HTTP_201_CREATED)
@router.delete("/items/{id}", status_code=status.HTTP_204_NO_CONTENT)

Integration Steps

集成步骤

  1. Create router in
    src/backend/app/routers/
  2. Mount in
    src/backend/app/main.py
  3. Create corresponding Pydantic models
  4. Create service layer if needed
  5. Add frontend API functions
  1. src/backend/app/routers/
    目录下创建路由
  2. src/backend/app/main.py
    中挂载路由
  3. 创建对应的Pydantic模型
  4. 如有需要,创建服务层
  5. 添加前端API函数