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