我如何通过葡萄招摇ui传递数组?

Bot*_*oti 6 ruby ruby-on-rails swagger swagger-ui

我在下面定义了api端点:

params do
  requires :ids, type: Array, desc: 'Array of group ids'
end
Run Code Online (Sandbox Code Playgroud)

我无法通过Swagger生成的UI传递数组.如果我进入[1, 2, 3, 4]ids%5b%5d=1&ids%5b%5d=2&ids%5b%5d=3两者都变得无效.如果我用数组调用api,那就可以了.我的客户想尝试Swagger的整个api,所以我想要一个适用于Swagger UI的解决方案.

Jon*_*gly 0

只是为了澄清 Boti 所说的内容,我认为他的意思是他将数组参数的类型更改为字符串,并发送了一个 JSON 数组的字符串 - 意思是"[1,2,3]"。显然,这并不理想,但如果您在 API 端解析它,它就会起作用。所以参数是 -

params do 
  requires :ids, type: String, desc: 'Array of group ids'
end
Run Code Online (Sandbox Code Playgroud)

需要明确的是,这是 Swagger UI 与 Grape-swagger 一起使用的问题,特别是因为 Grape Swagger 仅支持 Swagger 1.2。Grape Swagger 在将数组的正确格式发送到 Swagger 时遇到问题(请参阅此 Github Issue)。Grape 可以很好地处理 Array 类型,只是无法在 Swagger-UI 中测试它。

对于我们的项目,我们只是没有使用 Swagger 作为此参数。我宁愿让测试平台(Swagger-UI)无法正常工作,也不愿在实际产品中编辑其他正确的代码。