5. FastAPI 开发 POST 请求体字段处理

前言

请求体是客户端发送给 API 的数据,GET 请求不能发送请求体,
常见的发送请求体的请求方法:

  • POST
  • PUT
  • DELETE
  • PATCH

下面使用 POST 请求发送请求体,

定义请求体,需要使用 Pydantic 模型。

从 pydantic 中导入 BaseModel 模型

import BaseModel from pydantic

创建数据类型,声明数据模型为一个类,且该类继承 BaseModel

class Item(BaseModel):
    name: str
    description: Optional[str] = Field(
        None, title="这是描述", max_length=300
    )
    price: float = Field(..., gt=0, description="价格大于0")
    tax: Optional[float] = None
    sales: list = []
    """
    :param name: 书本名称
    :param description: 描述
    :param tax: 税费
    :param sales: 销售地
    """

完整代码:

# coding:utf-8
from typing import Optional
from fastapi import Body, FastAPI
from pydantic import BaseModel, Field
import uvicorn
app = FastAPI()


class Item(BaseModel):
    name: str
    description: Optional[str] = Field(
        None, title="这是描述", max_length=300
    )
    price: float = Field(..., gt=0, description="价格大于0")
    tax: Optional[float] = None
    sales: list = []
    """
    :param name: 书本名称
    :param description: 描述
    :param tax: 税费
    :param sales: 销售地
    """


@app.post("/book/{itemid}")
def post_items(itemid: int, item: Item = Body(..., embed=True)):
    results = {"id": itemid, "item": item}
    return results


if __name__ == '__main__':
    uvicorn.run(app='demo003:app', host="127.0.0.1", port=8000, reload=True, debug=True)


使用 PostMan 进行接口调试:

posted @ 2022-03-10 00:01  西瓜_皮  阅读(725)  评论(0编辑  收藏  举报