Flask中如何为Spectree的validate装饰器设置默认security字段
Spectree 设置全局默认security配置的方法
你不需要在每个@spectree.validate装饰器上重复声明security字段,有两种可行方案:
方案1:初始化Spectree实例时直接传入全局默认安全配置
这是最简便的原生支持方案,在实例化SpecTree对象时把通用的security规则作为参数传入即可,所有未单独配置security的接口都会自动继承这个全局规则:from spectree import SpecTree spectree = SpecTree( "flask", # 全局默认安全规则 security=[{"apiKey": "X-API-KEY"}, {"Source": "Authorization"}], # 其余原有初始化参数如title、version、path等保持不变 )如果个别特殊接口需要自定义安全规则,只需要在对应接口的
@spectree.validate()中显式传入security参数,就会自动覆盖全局默认值,不影响特殊场景的定制需求。方案2:封装自定义通用validate装饰器
如果你已经完成Spectree实例初始化,不想改动原有初始化逻辑,可以自己封装一层带默认security参数的装饰器替换原生装饰器使用:# 预定义通用安全规则 DEFAULT_SECURITY_SETTING = [{"apiKey": "X-API-KEY"}, {"Source": "Authorization"}] def spectree_validate(*args, **kwargs): # 未手动传入security参数时,自动注入默认配置 kwargs.setdefault("security", DEFAULT_SECURITY_SETTING) return spectree.validate(*args, **kwargs)后续接口直接使用你封装的
@spectree_validate(json=InputSchema)即可,用法和原生装饰器完全一致,特殊接口需要自定义规则时直接传入security参数即可生效。
内容的提问来源于stack exchange,提问作者Nadhem Maaloul
相关产品推荐
相关产品推荐

