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

如何配置OpenAPI securitySchemes使openapi-generator生成正确的Token初始化代码?

问题解决:通过调整OpenAPI YAML配置生成正确的Python SDK认证代码

问题核心是当前的OpenAPI YAML未明确指定默认安全认证方案,导致openapi-generator生成的Configuration类没有正确将构造参数的access_token赋值给实例变量,需要手动修改才能生效。


解决方案:添加全局默认安全配置

在OpenAPI YAML的根节点(与openapi、info、paths同级)新增security字段,明确指定默认使用local_bearer_auth认证方案:

openapi: 3.0.0
info:
  title: Firefly III API
  version: "1.0.0"
# 新增全局安全配置
security:
  - local_bearer_auth: []
paths:
  # 原有路径配置...
components:
  securitySchemes:
    firefly_iii_auth:
      type: oauth2
      description: Default OAuth2 flow
      flows:
        authorizationCode:
          authorizationUrl: https://demo.firefly-iii.org/oauth/authorize
          tokenUrl: https://demo.firefly-iii.org/oauth/token
          refreshUrl: https://demo.firefly-iii.org/oauth/token
          scopes: {}
    local_bearer_auth:
      description: Optional Bearer token flow
      type: http
      scheme: bearer

为什么这样改有效?

  • 全局security配置会告知openapi-generator:所有API接口默认采用local_bearer_auth(Bearer Token)认证。
  • 当generator识别到默认使用Bearer认证时,会自动生成正确的Configuration类代码,将构造函数传入的access_token参数直接赋值给self.access_token,而非硬编码为None。

可选:针对单个接口配置认证

如果不需要全局默认启用Bearer认证,也可以在特定接口的配置下单独添加security字段:

paths:
  /accounts:
    get:
      security:
        - local_bearer_auth: []
      summary: 获取账户列表
      # 接口其他配置...

这种方式适合仅部分接口需要Bearer认证的场景,但需要逐个接口配置,不如全局配置高效。


验证效果

修改YAML后重新生成Python SDK,查看configuration.py的__init__方法,会看到自动生成的self.access_token = access_token代码,无需手动修改即可正常使用Bearer Token完成认证。

内容的提问来源于stack exchange,提问作者Akasha

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 14:35:11