如何使用ruby oauth发出多个请求?

时间:2012-12-25 01:25:30

标签: ruby-on-rails ruby api oauth

我能够使用oauth获取访问令牌,但结束点将每个请求的最大记录限制为100。

我需要获得更多,并且想知道是否有一种简单/通用的方法可以做到这一点?

我想继续提出请求,直到我得到所有记录。例如:

@products = JSON.parse(@access_token.get("/api/rest/products?page=#{@n}&limit=100").body)

我可能需要10,000多种产品。这可能吗?

1 个答案:

答案 0 :(得分:1)

假设@products是一系列产品,您应该能够做到这一点

@products = []

(1..100).each do |page|
  @products << JSON.parse(@access_token.get("/api/rest/products?page=#{page}&limit=100").body)
end

如果你不确切地知道有多少页面或产品,除非api为你提供,你可以做这样的事情,在没有更多产品时停止提取。

@products = []

# Assuming you never want more then 10.000
(1..100).each do |page|
  new_products = JSON.parse(@access_token.get("/api/rest/products?page=#{page}&limit=100").body)
  @products << new_products
  break if new_products.size < 100
end