Нужно контроллер, который выполняет роль прослойки от веб-клиента до базы сделать универсальным и конфигурируемым. Например, контроллеру из вне приходит запрос (не важно от кого именно):
[{action: getArticle, target: android, count: 20, hash: 5674%4%$7^5bbss, и так далее...}]
И когда наш контроллер умеет разбирать и анализировать пришедший в запросе джейсон, ему уже понятно что делать дальше. К примеру я в своем сервисе сделал так, если в запросе указано что ajax: true то я отдаю только данные в виде json, если указано что ajax: false, то я отдаю сформированные html код. Главное продумать универсальный контроллер, не забывая про безопасность.
А кому надо раздаем API типа если хотите получить 20 записей отправьте такой-то запрос...
Конечно есть разные типы запросов под разные нужды и с разной защищенностью, я привел лишь общий смысл работы.