全书目录

第二篇:FastAPI 完全指南 —— 软件城市政务大厅宇宙

第九章:响应模型 —— 不是你返回什么,客户端就该看到什么

1 分钟 78 字 第 55 / 962 个阅读单元

很多初学者会犯一个危险错误:

把内部对象原样返回给外部。

py
from fastapi import FastAPI, status
from pydantic import BaseModel

app = FastAPI()

class PermitCreate(BaseModel):
    owner: str
    zone: str
    days: int

class PermitPublic(BaseModel):
    id: int
    owner: str
    zone: str
    days: int
    status: str

class PermitInDB(PermitPublic):
    internal_note: str

@app.post("/permits/", response_model=PermitPublic, status_code=status.HTTP_201_CREATED)
async def create_permit(data: PermitCreate):
    permit = PermitInDB(
        id=1,
        owner=data.owner,
        zone=data.zone,
        days=data.days,
        status="pending",
        internal_note="风控等级:低",
    )
    return permit

FastAPI 官方文档特别强调:响应模型会对输出做过滤。

text
你的内部对象
        │
        ▼
response_model 过滤
        │
        ▼
客户端最终看到的回执

这不仅是文档问题,更是安全问题