REST API支持的backbone.js应用程序的后端架构?

时间:2012-06-17 23:19:29

标签: rest architecture backbone.js backend

我们正在寻求开发一个相当JS重的内部生产力应用程序(想想:可编辑字段变成下拉列表,大量动态添加和删除当前页面上的部分等),并支持分离现有的JSON REST API而不是本地数据库。

过去使用Rails + jQuery创建动态页面的经验很糟糕,backbone.js似乎是一个更合适的工具。问题是,什么是构造后端的好方法? Rails似乎引入了不必要的复杂性,因为我们不会使用ActiveRecord数据库模型。在我的脑海中,其他一些想法是使用Sinatra,Node.js或纯HTML。以下是更多注意事项:

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

5 个答案:

答案 0 :(得分:4)

问题是将后端构建为纯api引擎。然后在客户端计算机上使用MVC堆栈进行规划。

Daniel Doubrovkine是Art.sy的首席技术官。他使用Grape骑在Rack上。

Grape是用于在Rack上构建API的DSL。包括可测试性和处理多个版本,身份验证,访问控制和文档的问题。

他的presentation就此而言。他的blog post关于最新版的Grape。

答案 1 :(得分:1)

Backbone.js非常灵活;没有那么多的硬连线。也就是说,默认情况下,它会查找返回格式为JSON的模型的后端服务。因此,如果您的模型具有属性 foo ,那么您的服务应该返回:

{ "foo": "bar" }

或者收藏:

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

除此之外,您可以通过为每种模型类型定义 urlRoot 属性来指定URL的外观,然后返回用于获取模型的URL的 url 函数给出 urlRoot 和模型的 cid (客户端ID)。

总而言之,如果您实现了可以使用原始JSON的标准REST API,那么您应该没问题。

答案 2 :(得分:0)

您想了解客户端上Backbone下面的内容吗?

查看marionetteTutorialBlogging about it

答案 3 :(得分:0)

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

答案 4 :(得分:0)

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

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