Я собираюсь создать кучу веб-приложений с нуля. (См. Http://50pop.com/code для обзора.) Я бы хотел, чтобы к ним можно было получить доступ из разных клиентов: интерфейсных веб-сайтов, приложений для смартфонов, серверных веб-сервисов и т. Д. Поэтому я действительно хочу JSON REST API для каждого.
Кроме того, я предпочитаю работать с серверной частью, поэтому я мечтаю о том, чтобы я сосредоточился исключительно на API и нанял кого-то другого для создания интерфейсного интерфейса, будь то веб-сайт, iPhone, Android или другое приложение.
Пожалуйста, помогите мне решить, какой подход я должен использовать:
ВМЕСТЕ В РЕЙЛЯХ
Сделайте очень стандартное веб-приложение Rails. В контроллере выполните переключатель response_with для обслуживания JSON или HTML. Ответ JSON - это мой API.
Pro: много прецедентов. Великолепные стандарты и множество примеров таких действий.
Con: Не обязательно, чтобы API был таким же, как веб-приложение. Не нравится, если / затем ответить_ с подходом переключения. Смешивание двух совершенно разных вещей (UI + API).
REST SERVER + JAVASCRIPT-ТЯЖЕЛЫЙ КЛИЕНТ
Создайте JSON-сервер REST API. Используйте Backbone или Ember.js для клиентского JavaScript для прямого доступа к API, отображая шаблоны в браузере.
Pro: Я люблю разделение API и клиента. Умные люди говорят, что это путь. Великолепно в теории. Кажется передовым и захватывающим.
Против: не так много прецедентов. Не много примеров этого сделано хорошо. Публичные примеры (twitter.com) чувствуют себя вялыми и даже отказываются от этого подхода.
REST SERVER + HTML-клиент на стороне сервера
Создайте JSON-сервер REST API. Создайте базовый клиент веб-сайта HTML, который обращается только к REST API. Меньше клиентского JavaScript.
Pro: Я люблю разделение API и клиента. Но обслуживание простого HTML5 довольно надежно и не требует большого количества клиентов.
Против: не так много прецедентов. Не много примеров этого сделано хорошо. Фреймворки также не поддерживают это. Не уверен, как подойти к нему.
Особенно ищет советы по опыту, а не только по теории.