Swagger 两次指定相同的路径

Swagger 两次指定相同的路径,swagger,swagger-ui,Swagger,Swagger Ui,是否可能在一个由Swagger UI呈现的API规范中多次出现相同的路径 我应该创建单独的api规范并加载两个Swagger UI实例吗?处理这个问题的最佳方法是什么 例如,我有一个名为/oauth/token的端点,我想用一组参数为oauth授权代码流记录该端点,用不同的参数集为客户端凭据流记录相同的端点/oauth/token文档 /oauth/token: post: summary: token endpoint for authorization_code flow

是否可能在一个由Swagger UI呈现的API规范中多次出现相同的路径

我应该创建单独的api规范并加载两个Swagger UI实例吗?处理这个问题的最佳方法是什么

例如,我有一个名为/oauth/token的端点,我想用一组参数为oauth授权代码流记录该端点,用不同的参数集为客户端凭据流记录相同的端点/oauth/token文档

/oauth/token:
    post:
      summary: token endpoint for authorization_code flow
      parameters:
        - name: code
          type: string
          description: Required for Authorization Code Flow
          in: formData
          required: true
        - name: grant_type
          type: string
          description: Grant Type should be specified as authorization_code
          in: formData
          required: true
          default: authorization_code
          enum:
          - authorization_code
          - client_credentials
        - name: client_id
          type: string
          description: Consumer Key
          in: formData
          required: true
        - name: client_secret
          type: string
          description: Consumer Secret
          in: formData
          required: true
        - name: endOtherSessions
          in: formData
          type: boolean
          required: false
          default: false
          description: Optional parameter. Default is false - do not allow concurrent login. Send true to end any other user sessions.
      tags:
        - OAuth2 Authorization Code
客户端\u凭据流的相同端点

/oauth/token2:
     post:
       summary: token for client credentials
       parameters:
         - name: grant_type
           type: string
           description: Grant Type should be specified as client_credentials
           in: formData
           required: true
           default: client_credentials
           enum:
          - authorization_code
          - client_credentials
         - name: client_id
           type: string
           description: Consumer Key
           in: formData
           required: true
         - name: client_secret
           type: string
           description: Consumer Secret
           in: formData
           required: true
       tags:
         - OAuth2 Client Credentials

由于问题是关于OAuth2的,而不是具有不同参数的单个端点,因此解决方案实际上是不同的

Swagger有一种特定的方法来记录授权方法,包括4个常见的OAuth2流

这些使用位于顶部的描述

在其中,您可以定义一个或多个OAuth2流。规范本身为
隐式
流提供了一个示例,但其他规范遵循类似的结构。区别在于提供的字段,即
authorizationUrl
tokenUrl
(取决于流类型)

一旦有了这些,就可以指定需要哪些安全方案。可以在或处为所有操作指定它


该规范允许您定义同时需要一组安全方法,或者用户可以在给定的安全方法集之间进行选择。

您是否仅要求OAuth2端点?因为如果是这样,您根本不需要指定这些。OAuth2安全性用Swagger进行了不同的描述。它同时适用于OAuth2和常规资源端点。Oauth2是我第一次遇到需要重复相同路径的情况。你能举一个非Oauth2路径的例子吗?因为这与它无关。我可以为您提供oauth2的具体解决方案,但更愿意看到您遇到的实际问题。谢谢Ron。到目前为止,我还没有关于非oauth的具体问题。您能为oauth2的特定场景提供帮助吗?谢谢Ron。这有助于记录api规范,但没有很好的方法显示来自Swagger UI的OAuth2安全定义文档,因此我尝试复制Swagger路径,文档类似于(这是Swagger 1.2版),看起来OAuth部分是作为HTML完成的,而不是使用Swagger-UI。好吧,你不能这样做。有一个功能要求swagger ui显示可用的证券,不能说是否/何时实施。Getty Images在那个里所做的超出了规范的范围,并没有得到Swagger的正式支持。