自动循环API Json响应

时间:2013-01-25 21:15:59

标签: php mysql json api

我正在尝试从JSON API结果中插入所有结果,但是他们已经限制了每页最多200个结果,尽管它们提供了下一个要访问的url以获得接下来的200个结果,这里是一个示例API提供的结果。

{
  "count": 200,
  "total": 31108,
  "nextUrl": "https://**/api/v1/***/orders?secure_auth_key=****&offset=200",
  "orders": [
    {
      "number": 40026,
      "paymentStatus": "ACCEPTED",
      etc....
    }
   ],
 }

这是我目前的代码,可以获取这200个结果并将它们存储在mySQL中

$url = "https://****/api/v1/***/orders?secure_auth_key=*****";
$json = file_get_contents($url, 0, null, null);
$result = json_decode($json, true)
foreach($result['orders'] as $order) {
   mysql_query("INSERT INTO blah blah");
}

我如何创建它以便它自动从下一页获取数据,例如:offset = 200并将所有数据添加到数据库,就像我在第一个结果中所做的那样。

1 个答案:

答案 0 :(得分:0)

假设如果没有更多结果,他们不提供下一个200的URL,为什么不将它用作支票。

例如。保存简单后如果检查最后一个结果是否有nexturl?

if(isset($result['nextUrl'])){
$url = $result['nextUrl'];
$json = file_get_contents($url, 0, null, null);
$result = json_decode($json, true)
foreach($result['orders'] as $order) {
   mysql_query("INSERT INTO blah blah");


}
}

理想情况下,将其移动到您可以在需要的地方不断调用的功能......