2012-06-17 71 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文件來處理。