Управление представлениями / шаблонами веб-сервисов для нескольких клиентов

У меня есть веб-служба на стороне сервера, которая обслуживает несколько клиентов. В число клиентов входят веб-браузеры, iPhone, BlackBerry, Android и т. д. Мой вопрос в том, что мне нужно иметь возможность генерировать динамический контент для представлений этих клиентов. Будь то полноценный HTML-шаблон, HTML-фрагмент, JSON, XML и т. д. В зависимости от пользовательского агента запрашивающего клиента, веб-сервер генерирует и выводит другой шаблон «представления».

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

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
0
186
3

Ответы 3

Прежде всего, вы не должны возвращать HTML через веб-сервис. IMHO, веб-сервис должен возвращать общую / независимую от клиента форму. Я бы посоветовал использовать простую веб-страницу ASPX, которая получает кучу преобразований макета XSL для некоторых клиентов.

Сделайте его настраиваемым, и вам не придется долго трогать код, даже если появятся новые клиенты или ваша визуализация изменится.

Html - это вполне допустимый медиа-тип для возврата из интерфейса REST. Микроформаты - отличный пример использования Html для предоставления машиночитаемой информации.

Darrel Miller 23.05.2009 21:42

Даррел: Возможно, вы правы, если вы просто используете серверные браузеры. Но в вопросе указано несколько клиентов - среди них браузеры. XML является независимым от клиента и платформы форматом именно для этих целей. Нет необходимости заставлять других клиентов использовать формат данных, удобный для браузера и клиента. (Хотя это возможно. Но дело не в этом.) В XML и XSLT есть смысл.

MrFox 30.05.2009 21:53

Что вам нужно, так это четкое разделение между моделью и презентацией. Если вы напишете несколько общих компонентов, которые извлекают данные независимым от представления способом (модель), вы можете иметь несколько адаптеров, которые отображают выходные данные для каждой конкретной цели (представления). Вокруг есть фреймворки, которые объединяют все это в один большой пакет; Обычно они обозначаются как MVC-фреймворкs. Но вам это особо и не нужно, если вам это не по вкусу. Для большинства видов вывода вы можете использовать механизм шаблонов, который поможет вам писать представления. Для вещей, которые представляют собой больше данных - меньше представления - таких как JSON или XML и общий вывод, предназначенный для машинного потребления, вы, вероятно, использовали бы что-то еще для генерации вывода.

Мне нравятся Codeigniter и CakePHP. MVC - это то, что нужно.

Abinadi 22.10.2009 13:28

Я думаю, вы ищете шаблонизатор. Я пользуюсь Smarty довольно давно, и он мне очень нравится. Это создает разделение между логикой и дизайном страниц. Все, что вам нужно сделать, это загрузить файл шаблона для пользовательского агента, который сделал запрос. В остальном логика останется прежней.

http://www.smarty.net/

Другие вопросы по теме