Мне интересно узнать, какой из двух вариантов является оптимальным для API CakePHP, который я строю.API является внутренним, то есть используется только для нашего веб-сайта для связи с бэкэндом.API вызывается через jquery, и я вижу один из двух вариантов возвращаемого формата:
- Вернуть необработанный json и оставить его до внешнего интерфейса jquery для его анализа и построения html.
- Возврат обработанного html, поэтому все, что нужно сделать jquery, это добавить html в некоторый контейнер.
Оба варианта имеют свои плюсы и минусы.Я перечислю их здесь, и, возможно, вы сможете расширить этот список.
Возвращение json:
- Плюсы: клиент имеет полную свободу действий, как он может пожелать с данными,Например, если нам нужно хранить данные в jquery о каждой ссылке, то мы можем сделать это, просматривая результаты и создавая HTML.
- Минусы: я не вижу отличного решения относительно того, гдесохранить HTML-шаблон для отображения ссылки.Именно поэтому я и выбрал вариант 2. CakePHP имеет очень естественный способ хранения шаблонов представлений, и я воспользовался этой возможностью.Встраивание шаблонов в javascript - это отвратительно!
Возврат отрендеренного html:
Мне интересно услышать, что другие делают для решения этой проблемы.Я читал, что Twitter возвращает html по соображениям производительности.
Спасибо всем.
Обновление: Я считаю, что мой вопрос частично решен с помощью фреймворка, подобного Backbone.js .Тем не менее, если (из соображений производительности) мы хотим отобразить html на серверной части, тогда нам все равно нужно будет передавать данные через API.Так что пример ответа json может выглядеть так:
{
id: 67,
html: "<a href=\"profile.php?id=61\">Who is number 67?</a>"
}
Все еще не идеально, я не думаю.Я предпочел бы, чтобы клиентский интерфейс javascript волшебным образом понимал, что это # 67:)