我想创建一个路径,接受用逗号分隔的任意数量的ID。它应该接受以下所有内容:
GET /pets/1,2 # returns info about pets with ids 1, 2
GET /pets/4,10,12,124,2 # same, for pets with ids 4, 10, 12, 124, 2
这本书"建立你不会厌恶的apis"给了我这个想法。 我如何以昂首阔步的方式做到这一点?
答案 0 :(得分:6)
Swagger 2.0支持collectionFormat
参数。来自documentation:
如果使用类型
array
,则确定数组的格式。可能的值有:
csv
:逗号分隔值:foo,bar
ssv
:空格分隔值:foo bar
tsv
:制表符分隔值:foo\tbar
pipes
:管道分隔值:foo|bar
multi
:对应于多个参数实例,而不是单个实例foo=bar&foo=baz
的多个值。这仅对" query"中的参数有效。或" formData"。默认值为
csv
。
可以在documentation上看到使用示例:
{
"get": {
"description": "Returns pets based on ID",
"summary": "Find pets by ID",
"operationId": "getPetsById",
"produces": [
"application/json",
"text/html"
],
"responses": { ... }
},
"parameters": [
{
"name": "id",
"in": "path",
"description": "ID of pet to use",
"required": true,
"type": "array",
"items": {
"type": "string"
},
"collectionFormat": "csv"
}
]
}