2014-01-15 45 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;