将 Ember 方法映射到 API

Mapping Ember methods to API

我正在使用 Ember 数据和 Rails API,我想知道如何将特定操作从 Ember 映射到 API。

例如,在查看 deleteRecorddestroyRecord 的 Ember 文档时,我没有看到这些方法是如何转换到后端的。这是在RESTAdapter中配置的吗?

我想知道哪些 Ember 方法已经连接到发送特定类型的基本 CRUD 操作请求(例如 destroyRecord 发送 DELETE 请求)以及我如何构建或覆盖这样的方法从头开始——例如,假设我想创建一个 remove 方法,我可以调用 DS.Model 并将其映射到 /api/v1/users#destroy.

这是非常基础的,并且在文档中有详细介绍。

createRecord 后跟 save/apinamespace/things 上生成 POST。

save 对现有记录生成 PUT /apinamespace/things/thingID

destroyRecord,或 deleteRecord 后跟 save,在 /apinamespace/things/thingID.

上生成 DELETE

Ember 数据存储和模型方法本身在设计上并不知道它们是如何在序列化程序和适配器级别实现的细节。它们只是从序列化程序和适配器调用适当的例程。所以不,人们不会期望 destroyRecord 的文档会谈论它是如何在 RESTAdapter/JSONSerializer 案例中实现的。

如果您有一个非标准的 API 方案——假设您的 DELETE 方法需要 /apinamespace/things?id=thingID 形式的 URL,例如——在某些情况下您可以通过自定义适配器来处理这个问题。例如,您可以覆盖 buildURL。对于更复杂的情况,您可能需要退后一步并自己进行 ajax/fetch 调用,之后您可以根据需要 pushpushPayload 将结果存入商店。