使用PHP调用Sideload API

时间:2016-01-19 00:40:02

标签: php json database api storage

有没有办法侧载(同时加载多个API调用)API调用以减少使用PHP对API调用限制的影响?

例如,我们使用EchoNest API收集有关音乐家的信息。当访问我们网站上的艺术家页面时,我们运行多个函数,每个函数调用一个不同的API方法,返回我们需要的特定数据。一切正常,看起来很棒!

以下是我们调用的一些(缩写)方法,每个方法都计入我们的呼叫限制:

function artistPageNews() {
    $artist_name = $_GET['artistname'];
    $results = iTunes::search($artist_name, array(
      'entity' => 'musicVideo'
    ))->results;

    $echonest_api_key = "OUR_API_KEY";

    // News Method
    $echonest_news = 'http://developer.echonest.com/api/v4/artist/news?api_key='.$echonest_api_key.'&name='.str_replace(" ", "+", $artist_name).'&format=json&results=2&start=0';
    $echonest_news_json = file_get_contents($echonest_news);
    $news_json = json_decode($echonest_news_json);
    $news_entry = $news_json->response->news;

    foreach ($news_entry as $news) {
        // Do Magic Stuff Here...
    }
}
function artistPageVideos() {
    $artist_name = $_GET['artistname'];
    $results = iTunes::search($artist_name, array(
      'entity' => 'musicVideo'
    ))->results;

    $echonest_api_key = "OUR_API_KEY";

    // Videos Method
    $echonest_videos = 'http://developer.echonest.com/api/v4/artist/video?api_key='.$echonest_api_key.'&name='.str_replace(" ", "+", $artist_name).'&format=json&results=6&start=0';
    $echonest_videos_json = file_get_contents($echonest_videos);
    $videos_json = json_decode($echonest_videos_json);
    $videos_entry = $videos_json->response->video;

    foreach ($videos_entry as $video) {
        // Do More Magic Stuff Here...
    }
}

我们可能在每个Artist页面加载时调用了大约7个(或更多)这些方法。显然,当很多人每小时观看艺术家页面时,这可能意味着麻烦。

我知道有一种方法可以将更多静态信息存储到数据库中并使用该信息而不是在每个请求上调用API方法。我正在探索这个选项。但我也read here可能有一种“侧载”API调用的方法,以便您可以一次发出多个请求。在那个例子中,他们使用的是Curl。我正在尝试使用 PHP

curl https://{subdomain}.zendesk.com/api/v2/help_center/fr/articles.json?include=users \
  -v -u {email_address}:{password}

任何人都可以帮助我开始使用它,或者推荐一种更好的方法来实现这一点,比如将这些信息存储到数据库或表格中并从中拉出而不是每次都调用API吗?

提前致谢。

0 个答案:

没有答案