2012-01-25 3 views
1

Я занят проектом, который включает в себя вызов API из девяти других сайтов. Ожидается, что это число увеличится в будущем, и фактический метод API будет отличаться (SOAP или XML).CakePHP - лучший способ моделирования ряда вызовов API

Существует спецификация, согласно которой каждый сайт должен быть модульным, чтобы мой клиент смог продать им наш API (который затем они могут передать другим агрегаторам).

В прошлом я выполнил несколько проектов Cake, но все они были управляемыми базой данных. Может кто-нибудь посоветовать, какой лучший способ приблизиться к этому?

На данный момент я собираюсь сделать каждый API плагином. Я положу вызовы API в модель (не привязанные к таблице базы данных), а затем остальные будут следовать естественным образом. Поскольку фактические представления каждого API будут отличаться, я не смогу использовать общий контроллер или представления (каждый API компании, который мы потребляем, имеет разные бизнес-правила).

Может ли кто-нибудь сказать мне, подходит ли этот подход разумным или если я отключен?

Спасибо, Энди

ответ

0

Может быть в корневом приложении вы можете продлить AppModel. Мышь SoapModel для мышей на основе API-вызовов и RestModel для вызовов на основе REST и т. Д.

Затем в каждом подключаемом модуле вы можете заставить модель расширить соответствующий класс для базовой связи, а затем вам придется обрабатывать только бизнес-правила для конкретных сайтов в этих моделях. Этот дополнительный слой абстракции прекрасно скроет детали реализации WS.

Вам даже не обязательно разделять их на плагины, если вы идете по толстой модели маршрута. Плагины являются особенно полезными, если вы хотите самостоятельно содержать «под-приложение» и сделать его повторно используемым в других приложениях Cake.

+0

Спасибо за это. Подход плагина необходим из-за требования, чтобы API мог быть использован другими разработчиками. Мне нравится идея создания слоя абстракции для общих сообщений и, возможно, синтаксического анализа. – Andy

Смежные вопросы