【发布时间】:2012-03-31 14:04:16
【问题描述】:
我正在使用一个 API,它希望我按照以下格式执行请求:
?filter=value1&filter=value2
但是,我使用的是 Active Resource,当我指定 :params 哈希时,我无法使相同的参数在 URL 中出现两次,我认为这是正确的。所以我不能这样做:
:params => {:consumer_id => self.id, :filter => "value1", :filter => "value2" },因为哈希的第二个过滤器索引将被忽略。
我知道我可以像这样传递一个数组(我相信这是正确的做法):
:params => {:consumer_id => self.id, :filter => ["value1","value2"] }
这将产生如下 URL:
?filter[]=value1&filter[]=value2
这对我来说似乎没问题,但 API 不接受它。所以我的问题是:
传递多值参数的正确方法是什么?是特定语言的吗?谁来决定这个?
【问题讨论】:
-
我有点困惑。 “过滤器”怎么会有两个不同的值?
-
对不起,我的意思是,它看起来像API的编写方式,过滤器值将被最后传递的值覆盖。
-
@fatfrog 我不知道 API 是如何编写的,我只是根据他们的规范获取数据。但正如您所知,API 能够在传递两个值时获取它们,例如 ?filter=value1&filter=value2
-
好的更新了我的答案-根据文档,要发送一个值数组,请将一对空的方括号“[]”附加到键名。
-
@fatfrog 你还没有写任何答案。另外,请阅读我的问题。您参考了哪些文档?
标签: ruby-on-rails api url w3c