【问题标题】:How to make multiple requests with ruby oauth?如何使用 ruby​​ oauth 发出多个请求?
【发布时间】:2012-12-11 04:59:25
【问题描述】:

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

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

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

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

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

【问题讨论】:

    标签: ruby-on-rails ruby api oauth


    【解决方案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
    

    【讨论】:

    • 抱歉我之前没说清楚,但是产品的数量是可变的。
    • 好的,非常感谢。我几乎是朝着这个方向前进,但不确定 oauth 对象是否有一些内置方法来发出多个请求。感谢您的帮助。
    猜你喜欢
    • 2016-09-18
    • 2013-09-26
    • 1970-01-01
    • 2011-06-02
    • 2020-11-10
    • 2015-12-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多