2012-06-17 37 views
3

我们正在寻找开发一个相当JS沉重的内部生产力应用程序(想想:可编辑字段变成下拉菜单,大量动态添加和删除当前页面上的部分等),并由单独的现有的JSON REST API而不是本地数据库。REST API支持backbone.js应用程序的后端架构?

过去经历过使用股票Rails + jQuery制作动态页面的不好体验,backbone.js看起来更像是一个更合适的工具。问题是,构建后端的好方法是什么? Rails好像引入了不必要的复杂性,因为我们不会使用ActiveRecord数据库模型。另外一些想法是使用Sinatra,Node.js或简单的HTML。这里有更多的考虑因素:

  • 这绝不是一个单一的页面应用程序。至少会有3个不同的“非哈希”URL部分,所以路由引擎会很有帮助。
  • 我们是Ruby商店,所以基于Ruby的任何东西都会更容易维护。
  • 这个应用程序是独一无二的,因为它将很少或没有动态的数据保存到服务器。发送数据后,页面重新加载没问题。但是,如上所述,在此之前会有大量的客户端操作。

回答

1

Backbone.js相当灵活;没有太多的硬连线。也就是说,默认情况下,它会查找返回格式为JSON的模型的后端服务。所以,如果你有一个属性的模型,那么你的服务应该返回此:

{ "foo": "bar" } 

或为一个集合:

[ { "foo": "bar1" }, { "foo": "bar2" } ] 

除此之外,您可以指定哪些URL看起来像通过定义每个模型类型urlRoot财产,那么网址函数返回的URL,获取一个模型给出的urlRoot和模型的cid(客户端ID)。

总之,如果你实现了一个可以使用原生JSON的标准REST API,那么你应该没问题。

+0

因此,你基本上推荐我使用backbone.js只使用普通的HTML,而不使用底层Web框架? – Suan

4

问题是将后端构建为纯API引擎。然后按照您的规划,在客户机上使用MVC堆栈。

Daniel Doubrovkine是Art.sy的CTO。他使用Rack上的Grape

葡萄是一种用于在机架上构建API的DSL。 In包含可测试性,并处理多个版本,身份验证,访问控制和文档的问题。

他的presentation关于此。他的blog post关于最新版本的葡萄。

+0

我知道我的问题不是很清楚:) REST API已经存在,并将与此应用程序分开。我的问题是在_this_应用程序的主干下使用什么,而不是支持REST API的应用程序。 – Suan

0

既然你说你有Ruby的专业知识,我建议你看看Sinatra。它看起来是制作REST后端的最简单方法,特别是对于Ruby开发人员。

0

我已经看到它成功完成with Middleman

基本上,Middleman编译您的静态资产,然后您可以将其发送到CDN或基本Web服务器(如Apache或Nginx)。你需要的3个不同的页面由Middleman生成3个独立的HTML文件来处理。