FastAPI 响应模式

FastAPI 响应模式

一个操作函数向客户端返回一个JSON响应。响应可以是Python主要类型的形式,即数字、字符串、列表或dict等。它也可以是Pydantic模型的形式。为了让一个函数返回一个模型对象,操作装饰器应该声明一个 respone_model 参数。

在response_model的帮助下,FastAPI将输出数据转换为一个模型类的结构。它验证数据,为响应添加JSON模式,在OpenAPI路径操作中。

response_model参数的一个重要优势是,我们可以通过选择模型中的字段来格式化输出,将响应转换为一个输出模型。

例子

在下面的例子中,POST操作装饰器以学生类(BaseModel的一个子类)对象的形式接收请求体。由于这个类中的一个字段,即marks(一个分数列表)在响应中不需要,我们定义了另一个叫做 percent 的模型,并将其作为 response_model 的参数。

from typing import List
from fastapi import FastAPI
from pydantic import BaseModel, Field
app = FastAPI()
class student(BaseModel):
   id: int
   name :str = Field(None, title="name of student", max_length=10)
   marks: List[int] = []
   percent_marks: float
class percent(BaseModel):
   id:int
   name :str = Field(None, title="name of student", max_length=10)
   percent_marks: float
@app.post("/marks", response_model=percent)
async def get_percent(s1:student):
   s1.percent_marks=sum(s1.marks)/2
   return s1

如果我们查看Swagger文档,它显示”/marks “路由获得一个学生类的对象作为请求主体。用适当的值填充属性并执行 get_percent() 函数。

FastAPI - 响应模式

服务器的响应被投到百分数类,因为它已经被用作响应模型。

FastAPI - 响应模式

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程