FastAPI基础之 模型的额外信息-示例
1、Pydantic schema_extra
您可以使用 Config 和 schema_extra 为Pydantic模型声明一个示例,如Pydantic 文档:定制 Schema 中所述:
from typing import Optional
from fastapi import FastAPI
from pydantic import BaseModel
app = FastAPI()
class Item(BaseModel):
name: str
description: Optional[str] = None
price: float
tax: Optional[float] = None
class Config:
schema_extra = {
"example": {
"name": "Foo",
"description": "A very nice Item",
"price": 35.4,
"tax": 3.2,
}
}
@app.put("/items/{item_id}")
async def update_item(item_id: int, item: Item):
results = {"item_id": item_id, "item": item}
return results
这些额外的信息将按原样添加到输出的JSON模式中。
2、Field 的附加参数
在 Field, Path, Query, Body 和其他你之后将会看到的工厂函数,你可以为JSON 模式声明额外信息,你也可以通过给工厂函数传递其他的任意参数来给JSON 模式声明额外信息,比如增加 example:
from typing import Optional
from fastapi import FastAPI
from pydantic import BaseModel, Field
app = FastAPI()
class Item(BaseModel):
name: str = Field(..., example="Foo")
description: Optional[str] = Field(None, example="A very nice Item")
price: float = Field(..., example=35.4)
tax: Optional[float] = Field(None, example=3.2)
@app.put("/items/{item_id}")
async def update_item(item_id: int, item: Item):
results = {"item_id": item_id, "item": item}
return results
Warning
请记住,传递的那些额外参数不会添加任何验证,只会添加注释,用于文档的目的。
3、Body 额外参数大连妇科医院哪家好 http://mobile.84211111.cn/
你可以通过传递额外信息给 Field 同样的方式操作Path, Query, Body等。
比如,你可以将请求体的一个 example 传递给 Body:
from typing import Optional
from fastapi import Body, FastAPI
from pydantic import BaseModel
app = FastAPI()
class Item(BaseModel):
name: str
description: Optional[str] = None
price: float
tax: Optional[float] = None
@app.put("/items/{item_id}")
async def update_item(
item_id: int,
item: Item = Body(
...,
example={
"name": "Foo",
"description": "A very nice Item",
"price": 35.4,
"tax": 3.2,
},
),
):
results = {"item_id": item_id, "item": item}
return results
©著作权归作者所有:来自51CTO博客作者ckllf的原创作品,如需转载,请注明出处,否则将追究法律责任更多相关文章
- 处理mvc的控制器访问与参数解析
- 对象池 GenericObjectPool 配置参数详解
- HBase调优 | HBase Compaction参数调优
- CSS:flex布局理解及实例演示flex容器中的四个属性的功能、参数、
- HBase调优|HBase + G1GC 性能调优
- 激光雷达有哪些重要参数?
- ALBERT 告诉了我们什么?
- flex基础:flex容器中的四个属性的功能,参数,以及作用
- vmware.exe命令行参数详解