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

如何修改FastAPI接口以接收JSON格式的单个POST参数?

解决方案

问题出在你的FastAPI接口默认将text参数解析为查询参数(URL里的?text=xxx),而非从JSON请求体中读取字段。要支持JSON请求体,可通过以下两种方式修改:

方式一:使用Pydantic模型(推荐,适配复杂请求结构)

FastAPI推荐用Pydantic模型定义请求体结构,既规范又能自动生成接口文档:

from fastapi import FastAPI
from pydantic import BaseModel

app = FastAPI()
# 假设classifier已提前加载完成
classifier = pipeline(path_to_model)

# 定义请求体模型
class TextRequest(BaseModel):
    text: str

@app.post("/predictions")
def extract_predictions(request: TextRequest):
    processed_text = request.text.lower()
    predictions = classifier(processed_text)
    return {
        "text_message": processed_text,
        "predictions": predictions
    }

方式二:直接使用Body参数(适合简单单字段场景)

如果请求体仅包含单个字段,也可通过Body参数指定从JSON请求体读取:

from fastapi import FastAPI, Body

app = FastAPI()
classifier = pipeline(path_to_model)

@app.post("/predictions")
def extract_predictions(text: str = Body(...)):
    processed_text = text.lower()
    predictions = classifier(processed_text)
    return {
        "text_message": processed_text,
        "predictions": predictions
    }

验证方法

修改完成后,用Postman/Insomnia发送POST请求到http://localhost:8000/predictions,请求体选择JSON格式,内容填写:

{"text": "your input string here"}

即可正常获取包含预测结果的响应。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 15:15:43