【发布时间】:2015-06-15 14:16:51
【问题描述】:
这可能是一个基本问题,但很常见,因此将来可能对其他人有所帮助。 我使用 HTTParty 向 API 发出 get 请求,它返回一些信息,如下所示:
{
datapath: "blah-blah.blah.blah",
success: true,
info: {
row_limit: 500,
total_results: 2700,
total_pages: 6,
current_page: 1
},
result: [
{name: something, age: 1},
{name: something, age: 2},
{name: something, age: 3},
{name: something, age: 4},
{name: something, age: 5},
......
]
}
我想要一个所有名字的列表,所以我有这样的东西:
response = HTTParty.get('blah-blah.blah.blah')
names = response.map { |entry| entry["name"] }
使用这种方法,我只能在第一页上获得名称,也就是前 500 个,但我想要 2700 个条目中的所有名称。我怎么做?
【问题讨论】:
-
这就是你要写的吗? “此方法仅在第一页上获取名称,但 2700 个条目的所有名称” 这真的没有意义。您的意思是像“此方法仅在第一页上获取名称,但我想获取所有 2700 个条目的名称”?如果是,请编辑您的问题。
-
另外,我怀疑答案会因您使用的 API 而异。这里的 API 是什么?
-
@MaxWilliams 抱歉打错了。我已经编辑了我的问题,是的,这正是我的意思。
-
听起来您需要通过 API 调用更改的是页面大小:将其设置为非常大的值,例如 1000000。api 文档应该告诉您如何执行此操作。我可以在结果中看到 row_limit 是 500 - 这是你想要改变的。所以也许你需要传递的参数是“row_limit=1000000”。在 Rails 中,它通常是“per_page”。就像我说的,它应该在 API 文档中。
标签: ruby-on-rails ruby json api httparty