веб-сервисы. Как определить подход промежуточного программного обеспечения в PHP для кэширования данных в интерфейсе REST?

Допустим, я хочу создать бэкэнд-приложение, которое будет предлагать интерфейс REST для моего музыкального приложения на iPhone, и это бэкэнд-приложение должно извлекать данные из нескольких веб-сервисов, некоторые в JSON, некоторые в XML.

Один из подходов заключается в создании слоя «адаптера», который в основном будет получать запрос RESTful от приложения iPhone, и он будет запрашивать конечные точки, а затем он будет составлять окончательные данные, которые должны быть стандартизированы каким-либо образом (например, с использованием синтаксис MRSS).

Мой главный вопрос — как мне структурировать всю систему по уровням:

  1. Поскольку на выходе интерфейса REST я хотел бы быть как можно лучше, я бы построил некоторые классы для объектов (в данном случае, музыки), чтобы он определял все различные сущности и отношения, такие как песни, альбомы, исполнители … и т.п.
  2. Затем я разработаю несколько «адаптеров», которые преобразуют возвращаемые данные от поставщиков (нестандартизированные данные) в мое определение REST.
  3. Один вопрос заключается в том, следует ли мне кэшировать внешние конечные точки с использованием уровня кэширования, такого как phpfastcache, или хранить его после того, как я уже преобразовал данные? В случае хранения данных после того, как данные «очищены», следует ли нормализовать данные с использованием базы данных для хранения каждого атрибута в отдельном столбце (год, жанр, имя и т. Д.) Или хранить все объекты в ключе / значение базы данных?
  4. Поскольку некоторые внешние конечные точки, к которым я должен подключиться, очень медленные, я также хотел бы настроить процессы cron для извлечения данных, потому что в противном случае это будет наказывать отзывчивость пользователя, если пользователь впервые запросит эту конечную точку не был уже кэширован. Должен ли я использовать для этого такой компонент, как Jobby? (https://github.com/jobbyphp/jobby)

Спасибо!

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]