Отдельный сервер REST JSON API и клиент? [закрытый]



Я собираюсь создать кучу веб-приложений с нуля. (См.http://50pop.com/code для обзора.) Я хотел бы, чтобы к ним можно было получить доступ из разных клиентов: интерфейсных веб-сайтов, приложений для смартфонов, серверных веб-сервисов и т. д. Поэтому я действительно хочу JSON REST API для каждого из них.



кроме того, я предпочитаю работать на бэк-энде, поэтому я мечтаю о том, чтобы я сосредоточился исключительно на API и нанял кого-то другого, чтобы сделать интерфейсный интерфейс, будь то веб-сайт, iPhone, Android, или другое приложение.



пожалуйста, помогите мне решить, какой подход я должен предпринять:




ВМЕСТЕ В РЕЛЬСЫ



сделайте очень стандартное веб-приложение Rails. В контроллере выполните переключатель respond_with, чтобы обслуживать JSON или HTML. Ответ JSON-это мой API.



Pro: большой прецедент. Отличные стандарты и много примеров того, как делать вещи таким образом.



Con: не обязательно хочу, чтобы API был таким же, как веб-приложение. Не нравится, если / тогда respond_with switch подход. Смешивание двух очень разных вещей (UI + API).







REST SERVER + JAVASCRIPT-ТЯЖЕЛЫЙ КЛИЕНТ



создайте сервер REST API только для JSON. Используйте позвоночник или тлеющие угли.js для клиентского JavaScript для прямого доступа к API, отображения шаблонов в браузере.



Pro: Я люблю разделение API и клиента. Умные люди говорят, что это путь ходить. Отлично в теории. Кажется ультрасовременным и захватывающим.



Con: не так много прецедентов. Не так много примеров этого сделано хорошо. Публичные примеры (twitter.com) чувствую себя вялым и даже переключаюсь от этого подхода.







REST SERVER + СЕРВЕРНЫЙ HTML-КЛИЕНТ



создайте сервер REST API только для JSON. Сделайте базовый клиент веб-сайта HTML,который обращается только к API REST. Меньше клиентского JavaScript.



Pro: Я люблю разделение API и клиента. Но обслуживание простого HTML5 является довольно надежным и не интенсивным для клиента.



Con: не так много прецедентов. Не так много примеров этого сделано хорошо. Фреймворки также не поддерживают это. Не знаю, как к нему подойти.




специально искала советы из опыта, а не только в теории.

736   0  

Comments

    Ничего не найдено.