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

时间:2016-01-05 17:57:24

标签: swagger swagger-2.0

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

实施例

我有一个调用PUT /accounts/<account_id>/payment_method,除路径参数外还需要一些参数。

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

现在:如果直接付款的payment_method_typeDD,则允许(和需要)更多参数,例如account_holderiban。 如果是别的话,e。 G。 PP,需要其他参数。

摘录自json

"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"
        },
      }
    }
  }
}

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

有没有办法描述这个?

有没有办法定义一组参数,例如一个定义中的所有直接借记参数并引用它? 备注:这些参数在{{旁边给出1}}参数,而不是在子对象内。

1 个答案:

答案 0 :(得分:1)

当前的swagger规范中无法使用条件参数。

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