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

如何在招摇中指定交替参数?

南门飞
2023-03-14

是否可以(以及如何)指定依赖于另一个给定参数的值的附加参数?

我有一个电话PUT/accounts/

一个是< code>payment_method_type,它定义了要设置的付款方式。

现在:如果payment_method_type是直接借记的DD,则允许(并且需要)更多参数,例如account_holderiban。如果是其他参数,例如PP,则需要其他参数。

"parameters": {
  "payment_method_type": {
    "name": "type",
    "description": "Payment method type.",
    "in": "query",
    "required": true,
    "type": "string",
    "enum": [
      "DD", "IV", "PP"
    ]
  },
  "payment_method_data_dd_account_holder": {
    "name": "account_holder",
    "description": "Name of account holder",
    "in": "query",
    "required": false, # but true if payment_method_type == DD
    "type": "string"
  },
  "payment_method_data_dd_iban": {
    "name": "iban",
    "description": "IBAN",
    "in": "query",
    "required": false, # but true if payment_method_type == DD
    "type": "string"
  },
  "payment_method_data_pp_some_info": {
    "name": "some_info",
    "description": "Some info needed for PP",
    "in": "query",
    "required": false, # but true if payment_method_type == PP
    "type": "string"
  },
}
"paths": {
  "/accounts/{account_id}/payment_method": {
    "put": {
      "summary": "Update Payment Method",
      "description": "...",
      "parameters": {
        {
          "$ref": "#/parameters/path_psp_account_id"
        },
        {
          "$ref": "#/parameters/payment_method_type"
        },
        {
          "$ref": "#/parameters/payment_method_data_dd_account_holder"
        },
        {
          "$ref": "#/parameters/payment_method_data_dd_iban"
        },
        {
          "$ref": "#/parameters/payment_method_data_pp_some_info"
        },
      }
    }
  }
}

我想摆脱长参数列表(因为这里遗漏了更多参数),但如上所述对它们进行分组,并记录某些参数仅适用于特殊类型是必需的(并且允许的)。

有什么方法可以描述这个吗?

有没有一种方法可以像一个定义中的所有直接借记参数一样定义参数集并引用它?备注:这些参数位于payment_method_type参数旁边,不在子对象中。

共有1个答案

裴华荣
2023-03-14

在当前的swager规范中没有条件参数。

是的,参数数组允许$ref指针。

 类似资料:
  • 我希望能够使用此枚举定义: ...然而,在参数定义内部,我不断得到错误: 错误: Swager错误:不是有效的参数定义

  • 我正在构建一个API,在这里我有几个endpoint,我需要用户ID,所以在从这篇文章中投票最多的答案(而不是被接受的答案)中得到想法后:ASP。NET MVC将对象从自定义操作筛选器传递到操作。 我创建了一个动作过滤器,我可以用属性来设置它。 所以我基本上是通过这个操作过滤器获得用户ID,它通过这样的方式从授权头获得: 唯一的问题是,现在它在我的Swagger文档中将参数显示为必需的参数(我根本

  • 从github下了一个项目源码,需要用到openCV, 按项目中介绍的编译操作: ./gradlew clean build 结果提示:

  • 我需要在java Swagger UI中传递一个对象数组作为参数。我无法做到这一点。然而,我可以轻松地将字符串数组作为参数传递。但是不知道如何传递嵌套在另一个类或DTO中的对象数组。我正在使用JavaSpring并开发RESTful Web服务。 下面是我的第一个 DTO,它在我的 REST API 中作为模型属性作为参数传递: 下面是第二个 DTO,其数组在第一个 DTO 中成为属性: 下面是控

  • 假设我有以下类及其接口 步骤1:使用Autofac在测试项目中设置构造函数: 步骤2:设置测试 现在,我如何注入配置器未知但“MyApplication”已知的参数“value”? 在我想要这么做之前 但是现在我正在尝试我们依赖反转和依赖注入,最终出现了上面描述的问题。

  • 问题内容: 试图使这个Json带有昂首阔步的定义: 我的swagger.json看起来像这样: 我在请求中得到了这个Json: 如何获得第一个Json语法槽Swagger参考? 问题答案: 您需要具有属性的包装对象的附加定义: 然后更改您的数组定义以将此包装器用作项目类型: