You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

FastAPI:如何为指定状态码配置默认响应无需手动返回?

FastAPI 自动返回状态码对应默认响应内容

在FastAPI中,可通过路由装饰器指定接口响应状态码,示例如下:

@router.post("/", status_code=status.HTTP_201_CREATED)

当前需求:无需在路由处理函数中手动返回JSONResponse或PlainTextResponse等响应体,而是为各状态码定义默认响应行为。例如下面的接口,希望移除手动返回的代码,让客户端自动收到对应状态码的消息(如201状态码返回"Created",而非null):

@router.post("/", status_code=status.HTTP_201_CREATED)
async def create_post(req: post_schemas.Post):
    # 创建post记录
    # 希望自动完成返回逻辑,移除以下代码
    return PlainTextResponse(status_code=status.HTTP_201_CREATED, content="Created")

尝试的实现方案

responses = {200: "OK", 201: "Created"}

@app.middleware("http")
async def no_response_middleware(request: Request, call_next):
    response = await call_next(request)
    if (
        response.status_code in responses
        and int(response.headers["content-length"]) == 4
    ):
        return PlainTextResponse(
            status_code=response.status_code, content=responses.get(response.status_code)
        )
    return response

内容的提问来源于stack exchange,提问作者Hossein Gholami

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 22:10:31