如何使 tokenUrl 可配置

Dar*_*Var 5 openapi

无论如何,是否可以使 OpenAPI 规范中的令牌 url 可配置。

例如,我想{{REALM_NAME_HERE}}从 swagger UI 中配置下面的领域。

  securitySchemes:

    oauth:
      type: oauth2
      description: This API uses OAuth 2
      flows:
        clientCredentials:
          tokenUrl: http://localhost:32777/auth/realms/{{REALM_NAME}}/protocol/openid-connect/token
          scopes: {}
Run Code Online (Sandbox Code Playgroud)

Hel*_*len 2

tokenUrl不支持变量。OpenAPI 规范存储库中有相应的功能请求:

https://github.com/OAI/OpenAPI-Specification/issues/551


tokenUrl但是,如果(在您的示例中 - ) 的参数化部分http://localhost:32777/auth/realms/{{REALM_NAME}}也恰好是 API 服务器 URL,您可以tokenUrl相对于服务器 URL 进行定义:

openapi: 3.0.0

servers:
  - url: 'http://localhost:32777/auth/realms/{REALM_NAME}'
    variables:
      REALM_NAME:
        default: some_default_realm   # default value is required

paths:
  ...

components:
  securitySchemes:
    oauth:
      type: oauth2
      description: This API uses OAuth 2
      flows:
        clientCredentials:
          tokenUrl: './protocol/openid-connect/token'
          scopes: {}
Run Code Online (Sandbox Code Playgroud)