如何在PHP中缓存JSON API数据?
问题描述:
我想了解如何从API缓存数据(准确地说是PokeAPI)来限制应用程序为数据所做的调用量。如何在PHP中缓存JSON API数据?
例如,我的功能之一得到“所有口袋妖怪”从API:
function getAllPokemon() {
$url = 'http://pokeapi.co/api/v2/pokemon/?limit=151';
$response = Requests::get($url);
$allPokemonData = json_decode($response->body, true);
return $allPokemonData;
}
我使用的数据在这个函数建立的列表项的菜单在我的图鉴中的应用程序。如何缓存JSON结果,以便每次重新加载页面时都不必调用api?
从我的研究中,我知道需要做什么的基础知识,需要在目录中创建缓存,并且在调用api之前,应用程序需要检查是否存在缓存文件,如果存在不调用,如果它没有调用api和缓存一段指定的时间 - 我不能把它翻译成工作代码,但?任何人都可以向我展示我的例子或指向我的任何学习材料?提前致谢。
答
对于缓存值key> val,可以使用redis。在第一次请求后,您可以使用密钥保存获取的数据。第二次和其他提取可以接收缓存在redis中的数据。
这是Redis和PHP的教程https://scotch.io/tutorials/getting-started-with-redis-in-php
http://www.php-cache.com/ – Sammitch