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