2015-06-16 60 views
0

我正在使用Ember Data和Rails API,並且想知道如何將特定操作從Ember映射到API。將Ember方法映射到API

例如,在查看Ember文檔deleteRecorddestroyRecord我沒有看到如何將這些方法轉換爲後端。這是在RESTAdapter中配置的。

我想知道哪些Ember方法已經連線發送特定類型的請求的基本CRUD操作(例如destroyRecord發送一個DELETE請求),但我也可以從頭建立或覆蓋這種方法 - 爲例如,我想創建一個可以調用DS.Model的remove方法,並將其映射到/ api/v1/users#destroy。

回答

2

這是相當基本的,並在文檔中涵蓋。

createRecord後面跟着save/apinamespace/things上生成POST。

save在現有記錄上生成PUT。

destroyRecorddeleteRecord後面跟着save,在/apinamespace/things/thingID上生成一個DELETE。

根據設計,Ember Data存儲和模型方法本身並不知道它們在串行器和適配器級別上的實現細節。它們只是從序列化器和適配器調用適當的例程。所以不行,人們不會期望destroyRecord的文檔談論它如何在RESTAdapter/JSONSerializer案例中實現。

如果您有一個非標準的API方案 - 例如,假設您的DELETE方法需要一個形式爲/apinamespace/things?id=thingID的URL - 您可以在某些情況下通過自定義適配器來處理此問題。例如,您可以覆蓋buildURL。對於更復雜的情況,您可能需要退出並執行您自己的ajax/fetch調用,之後您可以在需要時將pushpushPayload結果存入商店。