Wso2 通过分页从Web API接收所有结果

Wso2 通过分页从Web API接收所有结果,wso2,jruby,wso2ei,Wso2,Jruby,Wso2ei,我需要使用Web API连接到服务器并接收所有条目。但是,服务器最多只提供100个数据条目(分页)和如何获取下一批的提示。用WSO2 EI实现这一点的正确方法是什么 在这里,使用常规调解人似乎对我不起作用。我尝试使用脚本中介器并在Ruby中执行请求(或者更准确地说,是JRuby包WSO2所使用的)——但我需要使用Ruby Gem来处理JSON(这似乎对我不起作用) WSO2 EI也可以使用红宝石吗? 或者有人能想到我的问题的另一种解决方案吗(这不一定涉及用Java编写自定义中介) API响应示

我需要使用Web API连接到服务器并接收所有条目。但是,服务器最多只提供100个数据条目(分页)和如何获取下一批的提示。用WSO2 EI实现这一点的正确方法是什么

在这里,使用常规调解人似乎对我不起作用。我尝试使用脚本中介器并在Ruby中执行请求(或者更准确地说,是JRuby包WSO2所使用的)——但我需要使用Ruby Gem来处理JSON(这似乎对我不起作用)

WSO2 EI也可以使用红宝石吗? 或者有人能想到我的问题的另一种解决方案吗(这不一定涉及用Java编写自定义中介)


API响应示例(一次限制为2个条目)


光标。
之后是此查询中最后一个数据的ID。使用param after=2调用HTTP URL将选择接下来的2个条目。如果没有新条目
cursor.after
null
我会尝试调用api并存储结果的序列,如果cursor after不为null,则调用自身。在第二次迭代中,它将使用游标值调用api,将结果添加到前一个结果中,等等,直到cursor.after为null


另一个选项是嵌套克隆,每次游标.after不为null时,您都会继续创建新克隆。然后使用聚合中介来收集所有响应

WSO2中可能的解决方案取决于您得到的响应。你得到的答复是告诉你有多少“页面”,还是只告诉你还有更多的页面?它没有告诉我有多少页面。它只提供了一个ID(即最后一个元素的ID),可以用作URL中的偏移量(在这里它被称为“after”,因此它将在该ID之后查找条目),并在上面添加了一个示例响应。我将尝试调用api并存储结果的序列,如果cursor after不为null,则调用它自己。在第二次迭代中,它将使用游标值调用api,将结果添加到前一个结果中,等等,直到cursor.after为null。另一个选项是嵌套克隆,每次游标.after不为null时,您都会继续创建新克隆。然后使用聚合中介收集所有响应。第一个听起来不错。这基本上就是我在Ruby代码中所做的——我没有考虑将其转换为序列。如果你把它作为你的答案,我可以批准它。:)
{
  "result": {
    "data": [
        {
            "id": 1,
            "title": "Test"
        },
        {
            "id": 2,
            "title": "Test 2"
        }
    ],
    "cursor": {
        "limit": "2",
        "after": "2",
        "before": null
    }
  }
}