相关疑难解决方法(0)

将文件和关联数据发布到RESTful WebService,最好是JSON

这可能是一个愚蠢的问题,但我有一个晚上.在我正在开发RESTful API的应用程序中,我们希望客户端以JSON格式发送数据.此应用程序的一部分要求客户端上载文件(通常是图像)以及有关图像的信息.

我很难跟踪单个请求中如何发生这种情况.是否可以将文件数据Base64转换为JSON字符串?我是否需要向服务器发送2个帖子?我不应该为此使用JSON吗?

作为旁注,我们在后端使用Grails,这些服务由本机移动客户端(iPhone,Android等)访问,如果其中任何一个有所不同.

rest grails json file-upload

687
推荐指数
7
解决办法
55万
查看次数

带有pydantic模型的fastapi表单数据

我正在尝试从 html 表单提交数据并使用 pydantic 模型对其进行验证。
使用此代码

from fastapi import FastAPI, Form
from pydantic import BaseModel
from starlette.responses import HTMLResponse


app = FastAPI()

@app.get("/form", response_class=HTMLResponse)
def form_get():
    return '''<form method="post"> 
    <input type="text" name="no" value="1"/> 
    <input type="text" name="nm" value="abcd"/> 
    <input type="submit"/> 
    </form>'''


class SimpleModel(BaseModel):
    no: int
    nm: str = ""

@app.post("/form", response_model=SimpleModel)
def form_post(form_data: SimpleModel = Form(...)):
    return form_data
Run Code Online (Sandbox Code Playgroud)

我如何收到 http 状态422不可处理实体的错误

{"detail":[{"loc":["body","form_data"],"msg":"field required","type":"value_error.missing"}]}

等效的 curl 命令(由 firfox 生成)是

curl ' http://localhost:8001/form ' -H 'Content-Type: application/x-www-form-urlencoded' --data 'no=1&nm=abcd'

这里的请求正文包含 no=1&nm=abcd …

python pydantic fastapi

9
推荐指数
4
解决办法
2万
查看次数

标签 统计

fastapi ×1

file-upload ×1

grails ×1

json ×1

pydantic ×1

python ×1

rest ×1