3

我正在为我的 Ember 应用程序编写 Web 套接字服务。该服务将订阅一个 URL,并接收数据。数据会将模型推送到 Ember Data 的store.

URL 方案不代表标准的 RESTful 路由;它不是/posts/users例如,它类似于/inbound。一旦我订阅,它将成为各种事件的导火索。

对于我订阅的每个路由,我都需要实现特定于该路由的数据处理,以将数据转换为 Ember Data 期望的格式。我的问题是,最好的地方在哪里?

我将收到的示例事件对象:

event: {
  0: "device:add",
  1: {
    device: {
      devPath: "/some/path",
      label: "abc",
      mountPath: "/some/path",
      serial: "abc",
      uuid: "5406-12F6",
      uniqueIdentifier: "f5e30ccd7a3d4678681b580e03d50cc5",
      mounted: false,
      files: [ ],
      ingest: {
        uniqueIdentifier: 123
        someProp: 123,
        anotherProp: 'abc'
      }
    }
  }
}

我想将数据标准化,就像这样

device: {
  id: "f5e30ccd7a3d4678681b580e03d50cc5",
  devPath: "/some/path",
  label: "abc",
  mountPath: "/some/path",
  serial: "abc",
  uuid: "5406-12F6",
  mounted: false,
  files: [ ],
  ingestId: 123
},
ingest: {
  id: 123,
  someProp: 123,
  anotherProp: 'abc'
}

然后将其交给知道如何将设备模型和摄取模型添加到商店的东西。我只是对 ember 数据中的所有抽象感到困惑。

问题:

  1. 为了将记录添加到存储中,我应该将最终的标准化 JSON 传递给哪种方法?store.push?
  2. 初始数据处理(即从数组中获取事件数据)的合适位置在哪里?应用程序序列化器的extractSingle? pushPayload? 在不同的路线上,大部分的加工都是非标准的。
  3. 完成初始处理后,是否应该对数据中的每个键使用每种类型的序列化程序?即我是否应该将初始“blob”应用程序序列化程序,然后将每个键委托给每个模型的序列化程序?

参考:

4

0 回答 0