FastAPI 学习之路(四)使用pydantic模型做请求体
FastAPI 学习之路(十三)Cookie 参数,Header参数
前言
我们之前分享类作为依赖的注入,这次分享子依赖项。
正文
FastAPI 支持创建含子依赖项的依赖项。并且,可以按需声明任意深度的子依赖项嵌套层级。
FastAPI 负责处理解析不同深度的子依赖项。
我们去实现一个简单的demo
from fastapi import Depends, FastAPI
from typing import Optional
app = FastAPI()
fake_items_db = [{"city": "beijing"}, {"city": "shanghai"},
{"city": "heze"}]
def query_extractor(desc: Optional[str] = None):
return desc
def query__extractor(
desc: str = Depends(query_extractor),
name: Optional[str]="" ,
):
if not desc:
return name
return desc
@app.get("/items/")
def read_items(query__extractor: str = Depends(query__extractor)):
return query__extractor
我们去看下接口请求
我们可以看到,我们实现的子依赖是成功的。
用户未提供desc 时,则使用name
多次使用同一个依赖项
其实依赖注入系统非常简单。
依赖注入无非是与路径操作函数一样的函数罢了。
但它依然非常强大,能够声明任意嵌套深度的「图」或树状的依赖结构。
后记
发现问题,解决问题。遇到问题,慢慢解决问题即可。
欢迎关注雷子说测试开发,后续将会持续为大家分享更多的技术知识
如果你有问题可以留言或者加我微信:952943386。2021,一起牛转钱坤,一起牛逼。
如果觉得这篇文章还不错,来个【分享、点赞、在看】三连吧,让更多的人也看到~