FastAPI全局依赖失效求助:请求头验证无论正误均返回结果
问题原因
FastAPI的依赖函数若要终止请求并返回错误,必须抛出异常而非返回异常对象。你当前代码里用了return Fahttperror.No_Header,FastAPI会将这个返回值当作依赖的输出结果,不会触发异常处理逻辑,所以无论请求头是否符合要求,接口都会继续执行并返回结果。
修复方案
把依赖函数里的return改成raise,让FastAPI捕获异常并终止请求:
修改后的dependecies.py代码:
from fahttperrors import Fahttperror from fastapi import Header async def headercheck(xxx_access: str = Header(...)): if xxx_access != 'something': # 抛出异常替代返回操作 raise Fahttperror.No_Header
当请求头xxx_access不等于something时,FastAPI会触发异常处理流程,返回对应的错误响应,不再继续执行接口的业务逻辑。
内容的提问来源于stack exchange,提问作者Testing man
相关产品推荐
相关产品推荐

