Estoy a punto de crear un montón de aplicaciones web desde cero. (Consulte http://50pop.com/code para obtener una descripción general). Me gustaría poder acceder a ellos desde muchos clientes diferentes: sitios web front-end, aplicaciones para teléfonos inteligentes, servicios web de back-end, etc. Así que realmente quiero un API JSON REST para cada uno.
Además, prefiero trabajar en el back-end, así que sueño con mantener mi enfoque exclusivamente en la API y contratar a alguien más para que haga la interfaz de usuario frontal, ya sea un sitio web, iPhone, Android u otra aplicación.
Por favor, ayúdame a decidir qué enfoque debo tomar:
JUNTOS EN CARRILES
Haga una aplicación web Rails muy estándar. En el controlador, realice el conmutador respond_with, para servir JSON o HTML. La respuesta JSON es entonces mi API.
Pro: muchos precedentes. Excelentes estándares y muchos ejemplos de hacer las cosas de esta manera.
Con: No necesariamente quiero que la API sea la misma que la aplicación web. No me gusta si / luego responde_con enfoque de cambio. Mezclando dos cosas muy diferentes (UI + API).
REST SERVER + JAVASCRIPT-PESADO CLIENTE
Cree un servidor API REST solo para JSON. Use Backbone o Ember.js para JavaScript del lado del cliente para acceder a la API directamente, mostrando plantillas en el navegador.
Pro: Me encanta la separación de API y cliente. Las personas inteligentes dicen que este es el camino a seguir. Genial en teoría. Parece vanguardista y emocionante.
Con: No hay mucho precedente. No hay muchos ejemplos de esto bien hecho. Los ejemplos públicos (twitter.com) se sienten lentos e incluso se están alejando de este enfoque.
REST SERVER + SERVER-SIDE CLIENT HTML
Cree un servidor API REST solo para JSON. Cree un cliente de sitio web HTML básico, que solo acceda a la API REST. Menos JavaScript del lado del cliente.
Pro: Me encanta la separación de API y cliente. Pero servir HTML5 simple es bastante infalible y no requiere mucho cliente.
Con: No hay mucho precedente. No hay muchos ejemplos de esto bien hecho. Los marcos no admiten esto también. No estoy seguro de cómo abordarlo.
Especialmente buscando consejos de la experiencia, no solo en teoría.