You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 10:54:21