【发布时间】:2016-04-28 20:44:48
【问题描述】:
是否可以使用 UI 将一组项目传递到 swagger 块中的单个参数中?我在 ruby \ rails 应用程序中使用它。请求的类型是 GET。
我有一个带有多个参数的搜索 API。所有这些都是单一的价值,除了一个,设施。这接受一个项目数组,并且可以使用类似于下面显示的 URL 调用(下面的示例显示了两个值 1 和 2 正在传递)。
http://localhost:3000/api/venues/search.json?facilities%5B%5D=1&facilities%5B%5D=2
我的参数是这样设置的:
# INDEX (API)
swagger_path '/venues.json' do
operation :get do
parameter do
key :name, :facilities
key :in, :query
key :description, 'Facilities. This does not work.'
key :type, :array
key :required, false
end
end
end
当我在 swagger 中将数组作为参数传递时,EG [1] 它会生成以下 URL 来调用 API:
http://localhost:3000/api/venues/search?facilities=%5B1%5D
Swagger 似乎将“[1]”转换为 URI“%5B1%5D”,并将其作为我期望它执行的参数值。我希望因为我将它设置为一种“数组”类型,它会知道每次为数组的每个元素都将参数名称设置为“facilities%5B%5D”。
我想我错过了有关数组的一些定义,但找不到任何关于 swagger 块的文档可以提供帮助。
我看过一篇帖子,其中有人传递了一个逗号分隔的字符串,然后让 API 创建了一个数组来解决这个问题。
我所有的单值参数请求都按预期工作。
感谢任何帮助或建议。提前致谢。
【问题讨论】:
标签: ruby-on-rails arrays ruby swagger