我即将从零开始创建一堆Web应用程序。 (请参阅http://50pop.com/code进行概述。)我希望它们可以从许多不同的客户端访问:前端网站、智能手机应用程序、后端Web服务等。因此,我确实想要每个应用程序都有JSON REST API。
此外,我更喜欢在后端工作,所以我幻想着自己专注于API,然后聘请其他人制作前端UI,无论是网站、iPhone、Android还是其他应用程序。
请帮助我决定应采取哪种方法:
在Rails中一起构建
创建一个非常标准的Rails Web应用程序。在控制器中,使用respond_with开关,提供JSON或HTML服务。然后,JSON响应成为我的API。
优点:有很多先例。伟大的标准和许多这样做的示例。
缺点:不一定希望API与Web应用程序相同。不喜欢if/then respond_with开关方法。混合了两个非常不同的东西(UI + API)。
REST服务器+JavaScript密集客户端
创建一个仅JSON的REST API服务器。使用Backbone或Ember.js进行客户端JavaScript,直接访问API,在浏览器中显示模板。
优点:我喜欢API和客户端的分离。聪明人说这是正确的方式。理论上很棒。看起来很前沿和令人兴奋。
缺点:先例不多。没有做好这个的很多示例。公共示例(twitter.com)感觉迟缓,甚至正在切换到其他方法。
REST服务器+服务器端HTML客户端
创建一个仅JSON的REST API服务器。制作一个基本的HTML网站客户端,只访问REST API。客户端JavaScript较少。
优点: 我喜欢API和客户端的分离。但提供普通的HTML5相当简单,不需要客户端的大量计算。
缺点: 缺乏先例。没有很多成功的实例可供借鉴。框架对此支持不够好。不确定如何着手处理。
尤其是希望从经验上获得建议,而不仅仅是理论方面的。