使用PYDANIC模型的FastAPI查询参数模型、参数、PYDANIC、FastAPI

2023-09-04 01:57:38 作者:别拿真心换狗心

我有一个如下所示的PYDNIC模型

class Student(BaseModel):
    name:str
    age:int

通过此设置,我希望获得如下所示的OpenAPI架构

参数化压缩弹簧模型

那么,我如何使用PYDANIC模型来获取FastAPI中的From查询参数?

推荐答案

您可以这样做,


from fastapi import FastAPI, Depends

from pydantic import BaseModel

app = FastAPI()


class Student(BaseModel):
    name: str
    age: int


@app.get("/")
def read_root(student: Student = Depends()):
    return {"name": student.name, "age": student.age}

还请注意,查询参数通常是";可选";字段,如果您希望将它们设置为可选,请使用Optional键入hint as,

from fastapi import FastAPI, Depends
from typing import Optional
from pydantic import BaseModel

app = FastAPI()


class Student(BaseModel):
    name: str
    age: Optional[int]


@app.get("/")
def read_root(student: Student = Depends()):
    return {"name": student.name, "age": student.age}