前言
- 前面文章写的这么多路径函数最终 return 的都是自定义结构的字典
- FastAPI 提供了 response_model 参数,声明 return 响应体的模型
什么是路径操作、路径函数
# 路径操作
@app.post("/items/", response_model=Item)
# 路径函数
async def create_item(item: Item):
...
重点
response_model 是路径操作的参数,并不是路径函数的参数哦
- @app.get()
- @app.post()
- @app.put()
- @app.delete()
最简单的栗子
#!usr/bin/env python
# -*- coding:utf-8 _*-
"""
# author: 小菠萝测试笔记
# blog: https://www.cnblogs.com/poloyy/
# time: 2021/9/21 5:12 下午
# file: 17_response_model.py
"""
from typing import List, Optional
import uvicorn
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
tags: List[str] = []
@app.post("/items/", response_model=Item)
async def create_item(item: Item):
return item
if __name__ == "__main__":
uvicorn.run(app="16_Header:app", host="127.0.0.1", port=8080, reload=True, debug=True)
上面代码栗子,请求模型和响应模型都是同