2
我有一個Thrift API(使用軟件http://thrift.apache.org/)。一種使用Apache Thrift JS與Backbone.js綁定的方式?
我想使用Thrift JavaScript綁定(example)與Backbone.js,而不是REST。
這可能嗎?有沒有傳統的方法來做到這一點?
我有一個Thrift API(使用軟件http://thrift.apache.org/)。一種使用Apache Thrift JS與Backbone.js綁定的方式?
我想使用Thrift JavaScript綁定(example)與Backbone.js,而不是REST。
這可能嗎?有沒有傳統的方法來做到這一點?
當然可以。然後整個「同步」層是可替換的。 Backbone.js文件有一些關於sync layer的信息。這是默認的(REST) implementation。
替換同步層的一個簡單示例可以在backbone-localstorage extension中找到。
就您而言,您只需編寫用於讀取,創建,更新和刪除的代碼,Backbone爲您處理剩下的問題。
還要注意的是,你可以(通過設置在Model
或Collection
實例的「同步」屬性)
布萊恩,如果你看一下我的例子,你會發現在全局或實例級別覆蓋同步層該方法直接針對Thrift客戶端調用:client.calculate(1,work)。不使用Backbone需要的URL。因此,我看不出Backbone的「同步」層如何用於與Thrift交互,因爲Thrift類似於RPC。 Backbone是否支持非RESTful方法?你可以解釋嗎? –
Backbone'Model'依賴於你提供的操作來創建,讀取,更新和刪除。只要您可以找出如何映射到這些選項,您就可以使用骨幹模型。您可以完全忽略模型上的URL屬性。我鏈接到的「localstorage」示例就是這樣做的。相反,該模型將一個localstorage屬性添加到模型中。你可以做類似的事情,它會把「get」動作映射到你的動作上......比如'thriftProperties:new Thrift.Properties({action:calculate})''。您的實際實施將映射到您想要使用它的方式。 –
我應該補充說,如果你至少不能映射'get'動作,那麼'Model'可能就不合適。你可能只想創建一個「Command」對象來封裝你的遠程調用,並返回你的結果......類似於'var calculateCommand = new CalculateCommand(); calculateCommand.execute({success:successCallback})''。然後,您只需使用Backbone路由器並以相同的方式查看,但使用自定義命令而不是更正式的'Backbone.Model'實現。 –