Swagger 2.0是否支持表示带数字索引的查询参数数组
Swagger 2.0 对数字索引式查询参数数组的支持情况
结论:Swagger 2.0 原生不支持?list[0]=x&list[1]=y这类带数字下标的数组传参格式。
Swagger 2.0 规范中,查询场景下的数组类型参数仅通过collectionFormat字段控制序列化规则,一共只支持5种固定格式,没有对应数字索引传参的配置项,支持的原生格式如下:
csv:逗号拼接数组元素,传参形式为?list=x,yssv:空格拼接数组元素,传参形式为?list=x%20ytsv:制表符拼接数组元素,传参形式为?list=x%09ypipes:竖线拼接数组元素,传参形式为?list=x|ymulti:重复同名参数传值,也就是常规的数组传参形式,传参为?list=x&list=y
如果业务接口强制要求使用数字下标格式传参,没有原生配置可以自动生成这类参数定义,只能通过手动拆分参数的方式曲线实现:提前约定数组的最大长度,把每个下标对应的参数作为独立的查询参数单独定义,参数名直接写为list[0]、list[1]这类带下标的形式即可。
对应的参数定义示例:
parameters: - name: list[0] in: query type: string description: 数组索引0位的元素值 - name: list[1] in: query type: string description: 数组索引1位的元素值
这种方案的局限是无法支持动态长度的数组,只能覆盖提前定义好长度范围内的传参场景。
内容的提问来源于stack exchange,提问作者Mohamed Adel
相关产品推荐
相关产品推荐

