FastAPI 学习之路(二十五)路径操作装饰器依赖项

有时,我们并不需要在路径操作函数中使用依赖项的返回值。或者说,有些依赖项不返回值。

但仍要执行或解析该依赖项。

对于这种情况,不必在声明路径操作函数的参数时使用 Depends,而是可以在路径操作装饰器中添加一个由 dependencies 组成的 list。

 我们看下,如何去实现。我们去校验下请求头中的token,请求的key。

from fastapi import FastAPI, Depends, Header, HTTPException
from typing import Optional

app = FastAPI()

fake_db_items = [{"city": "beijing"}, {"city": "shanghai"}, {"city": "guangzhou"}]

def verify_token(token: str = Header(...)):
    if token != "mrli_token":
        raise HTTPException(status_code=400, detail="token is invalid")


def verify_key(key: str = Header(...)):
    if key != "mrli_key":
        raise HTTPException(status_code=400, detail="key is invalid")
    return key


@app.get("/items", dependencies=[Depends(verify_token), Depends(verify_key)])
def read_items():
   return fake_db_items


if __name__ == '__main__':
    import uvicorn
    uvicorn.run("main:app", reload=True, debug=True)

我们看下结果如何。      

①:不传入请求头

我们去看下带上请求头中的token

 我们去带下key,这样接口返回就是正确的。

我们可以看到无论路径装饰器依赖项是否返回值,路径操作都不会使用这些值。但是这些值都必须携带。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值