MKM*_*KMS 5 python swagger pydantic fastapi uvicorn
如果我向此 API 发送请求:
from fastapi import FastAPI
from pydantic import BaseModel
app = FastAPI()
class Response(BaseModel):
var_name: str
@app.put("/", response_model=Response)
def simple_server(a: str):
response = Response(var_name=a)
return response
Run Code Online (Sandbox Code Playgroud)
我收到此 json 文件的响应{"var_name1": "a"}。此外,我还得到了一个非常漂亮的 Swagger UI,它说明了响应字段。
我的问题是,如何{"var-name1": "a"}在 Swagger 文档中使用同样好的输入方式获取这个 json 文件(这是用连字符而不是下划线)?
显然,我无法命名响应数据类中的var_name属性var-name。
use*_*462 11
稍微修改你的 pydantic 对象:
from pydantic import BaseModel, Field
class Response(BaseModel):
var_name: str = Field(alias="var-name")
class Config:
allow_population_by_field_name = True
Run Code Online (Sandbox Code Playgroud)
需要该allow_population_by_field_name选项来允许使用字段名称创建对象,如果没有它,您只能使用别名来实例化它。
| 归档时间: |
|
| 查看次数: |
1768 次 |
| 最近记录: |