是否可以(以及如何)指定依赖于另一个给定参数值的其他参数?
我有一个调用PUT /accounts/<account_id>/payment_method
,除路径参数外还需要一些参数。
一个是payment_method_type
,它定义了要设置的付款方式。
现在:如果直接付款的payment_method_type
为DD
,则允许(和需要)更多参数,例如account_holder
和iban
。
如果是别的话,e。 G。 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"
},
}
}
}
}
我想摆脱长参数列表(因为这里省略了更多参数),但是如上所述对它们进行分组,并记录某些参数仅对特殊类型是必需的(并且是允许的)。 / p>
有没有办法描述这个?
有没有办法定义一组参数,例如一个定义中的所有直接借记参数并引用它? 备注:这些参数在{{旁边给出1}}参数,而不是在子对象内。
答案 0 :(得分:1)
当前的swagger规范中无法使用条件参数。
是的,参数数组允许$ref
指针。