2014-01-15 48 views
0

我一直在寻找如何保存/缓存外部API,因为当外部API不工作时,它使我的网站充满了错误。我想知道一种缓存API的方法。 我会举一个http://steamcommunity.com/id/712?xml=1 的例子,它经常出现故障,我也会拿json格式化api的例子,但是找不到任何api没有api键仍然这是一个json api - http://api.steampowered.com/IEconItems_440/GetSchema/v0001/?key=&language=en 有些帮助真的会被赞赏 谢谢!如何缓存/保存外部API的

+0

你不能保存外部API,因为其对外部网站,但你CA n缓存指定URL调用的返回数据,一旦api关闭,您可以从缓存中加载数据。有几种选择来存储数据即memcache,radis等,其中您的密钥将特定的API URL和数据返回给数据 –

回答

0

你可以推出你自己的包装。工作流程如下:

  • 检查如果你得到在缓存中存在
  • 如果确实如此,那么你最好检索
  • 如果没有,那么你抓住从所需的URL的所有内容,并其存储在缓存

- 这应该是这样的,

$cache = new YourOwnCacheManager(array(
    'ttl' => 60, 
    'path' => '/temp.cache' 
)); 


$url = 'http://steamcommunity.com/id/712?xml=1' 


if ($cache->isCached($url)) { 

    $content = $cache->read($url); 

} else { 

    $content = file_get_contents($url); 
    $cache->write($url, $content); 
} 

echo $content;