Я использую API для получения определенных данных, но из-за их большого количества я не могу получить их каждый раз, когда пользователь заходит на сайт. Вместо этого я подумал о том, чтобы извлечь его один раз, сохранить в базе данных и запросить все, что нужно пользователю, и отобразить его. Суть в том, что мне может понадобиться отправить запрос в API в другой раз, чтобы получить вновь добавленные данные, и для этой проблемы я подумал, либо запланировать определенное время, когда система снова получит данные из API, либо вручную отправить запрос, чтобы получить новые данные.
Чтобы прояснить мою точку зрения, вот как я представляю последовательность:
Мой вопрос: мой подход выполним и эффективен, или все это можно сделать гораздо более простым способом?
ОБНОВИТЬ:
Я бы использовал gAdventures API для перечисления различных туров вместе с их деталями.
Я рекомендую использовать мою библиотеку Swiss Cache. Он поддерживает файловое кэширование и APC. Даже кеш изображений (WIP). Если объем данных большой, моя библиотека поддерживает сжатие Gzip по умолчанию. Столь большие объемы данных автоматически сжимаются.
Пример кода моей библиотеки:
//Your API request function...
require_once("swiss_cache.php");
$cache = new swiss_cache();
$data = $cache->get("gAdventures_response");
if(!$data)
{
$data = someFunctionThatCallsTheService();
$cache->set("gAdventures_response", $data, 3600); //Save data for one hour.
}
Просто убедитесь, что вы установили путь к кешу в swiss_cache.php! 🙂 Если у вас есть какие-либо проблемы или вопросы с моей библиотекой. Просто отправьте мне сообщение! Документация находится в стадии разработки.
Других решений пока нет …