当前位置: 首页 > 知识库问答 >
问题:

两次指定Swager相同路径

贺俊杰
2023-03-14

在一个由Swagger-UI渲染的API规范中,同一个路径是否可能出现不止一次?

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

例如,我有一个名为/oauth/token的endpoint,我想用一组oauth Authorization Code流的参数对其进行记录,用一组不同的参数对client_credentials流的同一个endpoint/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

client_credentials流的相同endpoint

/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

共有1个答案

索吕恭
2023-03-14

既然问题是关于OAuth2而不是参数不同的单个endpoint,那么解决方案实际上是不同的。

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

这些使用位于顶部Swagger对象的安全定义对象来描述。

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

一旦您有了它,您就可以指定需要哪些安全方案。您可以为Swagger对象或操作级别的所有操作指定它。

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

 类似资料:
  • 在Spring IOC中,bean的两个定义(具有相同的名称和类)是否有效? 我有两个bean定义文件包含在web中。xml。参见下面的示例。 应用Context-beans1.xml applicationContext-beans2。xml 到目前为止,我还没有遇到任何问题。但是,这可能会影响到多线程和集群的现实环境吗? 注意:这两个XMLs都被加载,因为我可以使用在这两个XMLs中定义的其他

  • 问题内容: 我有使用JQuery..I米一个问题在我的代码发送字段名和序列号,其通过获取其数据的ctrller 和并且与序列表中没有given..And生成预览显示面板更新字段名与插入的字段..现在,我再次尝试更改字段名称。tat是现在,当我单击生成的显示面板字段时,相应的设置将打开,我将尝试立即更改字段名称 两者和都相同..在我发送的是字段名和序列号 在功能2中,我要发送相同的字段名和(但其他值

  • 问题内容: 我有一个加载从源文件编译的类。但是,当我更改源文件,保存并重新编译它时,仍然会加载该类的第一个版本。 我想念什么?像newInstance之类的东西? 问题答案: 类加载器不能替换已经加载的类。将返回现有实例的引用。 您必须实例化一个新的类加载器,并使用它来加载新类。然后,如果要“替换”该类,则必须扔掉该类加载器并创建另一个新的类加载器。 针对您的评论:做类似的事情 该类加载器将使用“

  • 问题内容: 我有两个路线组,“动漫”和“漫画”。这些URL是/ anime/或/manga/,但它们都共享完全相同的控制器和模板 (唯一不同的是用于每个模板的配色方案,但这些颜色是在检查是否通过过滤器的过滤器中确定的)正在查看的特定项目是动漫还是漫画) : 动漫陈述定义: 漫画状态定义: 如您所见,其中已经有很多重复,我一点都不喜欢。随着我不断添加新路线,重复次数只会增加 (您已经可以看到mang

  • 我有两个不同的方法,在两个不同的类中。我希望他们都能阅读同一行输入,并检查不同的内容。一个查找“给我冲杯咖啡”之类的说明,另一个查找不同的关键字,如“请”和“谢谢”(这些影响程序对我的反应): 然后我在我的主字符串中调用它们,只是为了测试它们: 我的控制台显示如下: 我知道发生了什么,但我想不出其他办法。我也尝试过使用同一个扫描仪,不同的字符串,但仍然不起作用。我怎样才能使这两种方法都能读取我的第

  • 我有一个API,它允许传入任何任意路径,例如所有这些: 是有效路径。我试着这样描述: 但是https://generator.swagger.io在路径中编码斜线,所以不起作用。那么有没有办法用Swagger来描述我的API呢?