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

仅在查询参数名称上不同的路径

袁旻
2023-03-14

我正在使用swagger编辑器记录一个现有的API,该API允许一个路径支持两个不同的请求,这两个请求仅在查询参数名上有所不同。例如:

swagger: '2.0'
info:
  title: example
  version: 1.0.0
host: example.com
schemes:
  - http
basePath: /WS
paths:
  /Login:
    post:
      summary: Login
      description: |
        Log in
      parameters:
        - name: UserID
          in: query
          description: User ID
          required: true
          type: string
        - name: Password
          in: query
          description: User password
          required: true
          type: string
      responses:
        '200':
          description: Success
  /Login:
    post:
      summary: Login
      description: |
        Log in
      parameters:
        - name: UserID
          in: query
          description: User ID
          required: true
          type: string
        - name: Token
          in: query
          description: Authentication token
          required: true
          type: string
      responses:
        '200':
          description: Success

这里我支持对http://example.com/ws/login?userid=foo&passoword=barhttp://example.com/ws/login?userid=foo&token=dubdu22r8dwjg767dg的请求。

swagger编辑器不会显示上述yaml的任何错误,但它只为第二个路径(具有UserId和令牌queryparams的路径)生成文档,而不是同时生成。有人能指出我哪里出了问题吗?谢了。

编辑:

如果我将第二个/login:路径更改为(例如)/login1:,那么我会在文档中看到这两个路径。但不是解决办法。

共有1个答案

海信鸥
2023-03-14

您可以改为使用路径参数,请尝试:

swagger: '2.0'
info:
  title: example
  version: 1.0.0
host: example.com
schemes:
  - http
basePath: /WS
paths:
  /Login?UserID={id}&Password={password}:
    post:
      summary: Login
      description: Log in
      parameters:
        - name: id
          in: path
          description: User ID
          required: true
          type: string
        - name: password
          in: path
          description: User password
          required: true
          type: string
      responses:
        '200':
          description: Success
  /Login?UserID={id}&Token={token}:
    post:
      summary: Login
      description: Log in
      parameters:
        - name: id
          in: path
          description: User ID
          required: true
          type: string
        - name: token
          in: path
          description: Authentication token
          required: true
          type: string
      responses:
        '200':
          description: Success
 类似资料:
  • 我想知道EXPRESS如何解析同名的多个查询参数;我在任何地方都找不到任何有用的参考资料。我想具体了解EXPRESS,它将如何处理这个URL

  • 问题内容: 当我这样做时(在laravel中): 它说: SQLSTATE [HY093]:无效的参数号(SQL:SELECT * FROM my_table,其中id =:id || id =:id) 但是当我这样做时(使用纯PHP): 成功了。我究竟做错了什么? PS显然,遇到问题时我运行的查询更有意义。 UPD 或多或少的真实查询: 问题答案: 从我所看到的一切都可以归结为无法处理命名参数。

  • 问题内容: 您将如何在不同的环境中处理跨数据库查询。例如,db1-development和db2-development,db1-production和db2-production。 如果要在从db2到db1的开发中进行跨数据库查询,则可以使用完全限定的名称,即[db1-development]。[schema]。[table]。但是,如何在不同环境之间维护查询和存储过程?[db1-develop

  • 英文原文:http://emberjs.com/guides/routing/query-params/ 通常情况下,URL的动态段是模型的一种序列化表示,最常见的是模型的ID。然后,有时候还需要将应用的其他状态也序列化到URL中。这可能是对从服务器端加载模型有影响的一些参数,比如要查看的是那一页结果;也可能是一些关于客户端状态的信息,比如在客户端实现排序时的记录排序规则。 当然URL中还可以被序

  • 问题内容: 我正在尝试将一个旧项目迁移到Retrofit库,并且该项目具有相当棘手的API。所以我有一个这样的查询模板: 我必须在以下模板的此处添加一些参数: 例如: 这就是API的工作方式,我无法更改。我知道我们可以将列表作为参数传递,如下所示: 但是,如何动态设置参数名称呢? 问题答案: 感谢@ILLIA DEREVIANKO(https://github.com/square/retrofi

  • 考虑一个用例,我有一个类似 现在我怎么能有 2 种不同类型的案例 用例-1 我如何接受swagger中的类形式的上述查询参数,我知道我们可以在swagger中将其定义为不同的单独参数,如下所示 但是使用这个swagger创建了一个带有字符串或整数参数的rest方法,拥有这么多的多个参数可能不是一个好主意,所以我强烈希望它创建一个如下所示的类,而我的rest是用这个类对象生成的。我如何将这个类应用到