Вопрос или проблема
Я нахожусь в ситуации, когда мне нужно использовать данные из API (XML), предоставляемого сторонним сервисом, в моем сайте на WordPress. Эти данные будут обновляться в указанном стороннем приложении.
В частности, это данные о недвижимости, которые хранятся в этом стороннем веб-приложении. Данные доступны в формате XML. Я хотел бы разрешить отображение этих данных на сайте WP, а также поиск и, в конечном итоге, переход на указанное приложение для бронирования.
В данный момент у меня есть три варианта, и я хотел бы знать, какой из них предпочтителен.
Вариант 1:
Сохранить xml со всеми данными, используя временный API в WordPress, и получать доступ к данным с помощью Ajax в шаблоне поста.
Вариант 2:
Сохранить xml со всеми данными, используя временный API в WordPress, и получать доступ к данным с помощью PHP в шаблоне поста.
Вариант 3:
Импортировать данные в базу данных WP в виде пользовательских постов и связанных метаданных?
Данные доступны только в формате XML (поэтому я это упоминаю).
Мои конкретные опасения заключаются в том, что отсутствие данных в базе данных WP может привести к невозможности поиска/сортировки данных с использованием функций WP.
Я только начинаю разработку плагина сейчас, и решение о том, как использовать данные, определит направление разработки.
Ваш подход неправильный. Источник данных не должен иметь значения для того, как вы их храните в БД. Если тот факт, что это сторонний сервис, который предоставляет данные в каком-то модном формате, сбивает вас с толку, возможно, вам стоит попытаться представить данные как поступающие от низкооплачиваемого студента, который ежедневно вводит данные, и как бы вы тогда построили БД.
Ответ или решение
Хранение данных внешнего API в базе данных WordPress или использование временного хранения?
С точки зрения проектирования архитектуры данных для вашего WordPress (WP) сайта, который будет взаимодействовать с API третьей стороны, есть несколько аспектов, которые необходимо учитывать при выборе метода хранения данных: использование временного хранения (transients) или хранение в базе данных WP.
Определение контекста
Вы хотите интегрировать данные о недвижимости, предоставляемые сторонним API в формате XML, и обеспечить возможность отображения, поиска и бронирования на вашем сайте WP. В связи с этим рассмотрим три предложенных вами варианта:
- Вариант 1: Использование временного хранения (transient API) с доступом к данным через Ajax.
- Вариант 2: Использование временного хранения с доступом к данным через PHP в шаблоне постов.
- Вариант 3: Импорт данных в базу данных WP в виде пользовательских постов и связанных метаданных.
Анализ вариантов
Вариант 1 и Вариант 2: Временное хранение
Временные транзиенты позволяют хранить данные на ограниченный срок. Они могут значительно уменьшить количество запросов к API и повысить производительность вашего сайта. Однако, существуют несколько важнейших недостатков:
-
Ограниченные возможности поиска и сортировки: Запросы к временным данным будут ограничены функциональностью WordPress. Вы не сможете использовать стандартные функции поиска и сортировки WP, так как данные будут недоступны в привычной для WP структуре.
-
Устойчивость к сбоям: В случае сбоя или если данные истекут, у вас могут возникнуть проблемы с отображением данных на сайте. Вам потребуется тщательное управление сроками хранения и периодическое обновление, которое может вызывать задержки.
-
Отсутствие структуры: Если данные из API довольно обширны, управление их структурированием и связями будет затруднено.
Вариант 3: Импорт в базу данных
Импорт данных в базу данных WP в виде пользовательских постов и метаданных может показаться более сложным на первой стадии разработки, но это также и более надежный подход с точки зрения гибкости и возможностей:
-
Полный доступ к функциональности WP: Данные будут доступны для поиска, сортировки и фильтрации с использованием всех стандартных возможностей WordPress. Это даст вам легкость в реализации поиска и работы с данными, а также упростит создание интерфейсов для конечных пользователей.
-
Устойчивость к сбоям: Данные, хранящиеся в базе данных WP, будут менее подвержены потерям, чем временные данные. Даже если API временно недоступен, ваш сайт будет функционировать на базе сохраненных данных.
-
Гибкость в обработке данных: Хранение данных в базе данных дает вам полную свободу в создании пользовательских полей и а также в разработке более сложных функций управления данными, связанных с их отображением и работой с ними.
Заключение
В вашем случае, лучший вариант – это Импорт данных в базу данных WP как пользовательские посты и связанные метаданные (Вариант 3). Хотя этот подход требует больше усилий по первоначальной реализации, он принесет множество преимуществ в будущем, включая полноценную возможность обработки и интеграции данных, что, безусловно, упростит вашу разработку благодаря возможности использования всех стандартных функций WP.
Таким образом, если вы стремитесь создать стабильное, функциональное и гибкое решение для вашего сайта на WordPress, переход к хранению данных в базе данных – это наилучший путь.