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的原创作品,如需转载,请注明出处,否则将追究法律责任

更多相关文章

  1. 处理mvc的控制器访问与参数解析
  2. 对象池 GenericObjectPool 配置参数详解
  3. HBase调优 | HBase Compaction参数调优
  4. CSS:flex布局理解及实例演示flex容器中的四个属性的功能、参数、
  5. HBase调优|HBase + G1GC 性能调优
  6. 激光雷达有哪些重要参数?
  7. ALBERT 告诉了我们什么?
  8. flex基础:flex容器中的四个属性的功能,参数,以及作用
  9. vmware.exe命令行参数详解

随机推荐

  1. c语言num什么意思
  2. C语言的关键字有哪些?
  3. c语言fabs是什么意思
  4. c语言long类型是什么意思
  5. printf和scanf的区别
  6. 用c语言求1到1000的同构数
  7. c++优先队列用法详解
  8. c语言数组求和的方法
  9. c语言中如何用do...while语句求1到100的
  10. c语言如何求余数