Архитектура приложений в стиле MVC, ориентированная на API - PullRequest
3 голосов
/ 23 февраля 2011

Я работаю над сайтом в стиле «сообщества», и для удовольствия, и для получения прибыли, и, хотя эстетический элемент у него хорошо складывается, я еще не впал в разработку логики приложения по причинамнеуверенность в моем подходе.

Я создаю основанную на PHP фреймворк в стиле MVC, в котором, я надеюсь, можно повторно использовать компоненты, однако я заметил, что многие существующие MVC-фреймворки используют своего рода «соглашение о конфигурации» для ускорениявесь процесс.Некоторые запросы, которые я собираюсь выполнить, немного сложнее, чем SELECT * FROM entity_name.

. Я хочу спроектировать приложение по слоям, чтобы API-вызовы могли выполняться на сервере.Я решил, что вместо того, чтобы делать все дважды, я бы построил свои контроллеры сайтов поверх этого уровня, чтобы все соответствовало стандарту.Это позволит Ajax-вызовам, вызовам удаленных веб-приложений и т. Д. Следовать тем же путем нормализации и ответа на запросы, что и веб-запросы документов.

В любом случае, возможно, большая часть этого является ненужной деталью, но может кто-нибудь отбросить некоторыесвет на API многоуровневой архитектуры MVC такого рода?Поскольку уровень API (уровень модели) - это место, где данные в конечном итоге считываются / записываются, хотел бы я включить аутентификацию на этом уровне или абстрагировать ее до более высокого уровня и сделать ее точкой входа?Какие еще соображения я должен сделать, о которых я не упомянул?

Я знаю, что у меня еще много дел для чтения, поэтому любые предложения по чтению материалов или советы из личного опыта с этим очень приветствуются.Заранее спасибо.

1 Ответ

1 голос
/ 05 марта 2011

Это очень хороший вопрос.Я думаю, что лучше всего было бы максимально использовать SOA-подход с ресурсами REST. Если ваш сайт получает много посещений, возможно, стоит отделить состояние, изменяющееся от показа состояния, поэтому первый может использовать более сложный подход OO, в то время какдругой может использовать простые DTO (в виде массивов) и извлекать данные из базы данных с помощью пользовательских запросов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...