Je suis sur le point de créer un tas d'applications Web à partir de zéro. (Voir http://50pop.com/code pour un aperçu.) J'aimerais qu'ils soient accessibles à partir de nombreux clients différents: sites Web frontaux, applications pour smartphones, services Web principaux, etc. Je veux donc vraiment un API JSON REST pour chacun.
De plus, je préfère travailler sur le back-end, donc je rêve de me concentrer uniquement sur l'API et d'embaucher quelqu'un d'autre pour créer l'interface utilisateur frontale, qu'il s'agisse d'un site Web, d'un iPhone, d'Android ou d'une autre application.
Veuillez m'aider à décider de l'approche à adopter:
ENSEMBLE EN RAILS
Créez une application web Rails très standard. Dans le contrôleur, effectuez le commutateur respond_with pour servir JSON ou HTML. La réponse JSON est alors mon API.
Pro: Beaucoup de précédents. De grandes normes et de nombreux exemples de faire les choses de cette façon.
Inconvénient: vous ne voulez pas nécessairement que l'API soit la même que l'application Web. Je n'aime pas l'approche du commutateur if / then respond_with. Mélanger deux choses très différentes (UI + API).
SERVEUR REST + CLIENT LOURD JAVASCRIPT
Créez un serveur d'API REST uniquement JSON. Utilisez Backbone ou Ember.js pour JavaScript côté client pour accéder directement à l'API, en affichant les modèles dans le navigateur.
Pro: J'aime la séparation de l'API et du client. Les gens intelligents disent que c'est la voie à suivre. Génial en théorie. Semble de pointe et passionnant.
Con: Pas beaucoup de précédents. Pas beaucoup d'exemples de cela bien fait. Les exemples publics (twitter.com) se sentent lents et s'éloignent même de cette approche.
SERVEUR REST + CLIENT HTML CÔTÉ SERVEUR
Créez un serveur d'API REST uniquement JSON. Créez un client de site Web HTML de base, qui accède uniquement à l'API REST. Moins de JavaScript côté client.
Pro: J'aime la séparation de l'API et du client. Mais servir du HTML5 simple est assez infaillible et ne demande pas beaucoup de clients.
Con: Pas beaucoup de précédents. Pas beaucoup d'exemples de cela bien fait. Les cadres ne prennent pas en charge cela également. Je ne sais pas comment l'aborder.
Surtout à la recherche de conseils d'expérience, pas seulement en théorie.