修改余烬预期的json api响应

时间:2015-04-17 23:51:44

标签: javascript ember.js ember-data ember-cli

我是Ember的新手,根据我的理解,它有一种非常具体的方式,除了它的json api响应外。像这样:

{
  "post": {
    "id": 1,
    "title": "Node is not omakase",
    "comments": [1, 2, 3]
  },

  "comments": [{
    "id": 1,
    "body": "But is it _lightweight_ omakase?"
  },
  {
    "id": 2,
    "body": "I for one welcome our new omakase overlords"
  },
  {
    "id": 3,
    "body": "Put me on the fast track to a delicious dinner"
  }]
}

现在我已经构建的api有一个类似的json响应:

{
  "data": {
    "id": 1,
    "name": "Pansy Bednar",
    "links": [
      {
        "rel": "self",
        "uri": "/pansy-bednar15"
      }
    ],
    "players": {
      "data": [
        {
          "id": 2,
          "name": "Nicholas O'Reilly",
          "position": "cad",
          "age": 23,
          "value": "640",
          "links": [
            {
              "rel": "self",
              "uri": "/team/nicholas-o-reilly71"
            }
          ]
        }
      ]
    }
  }
}

api相当大,并且与移动应用程序一起正常运行。所以重新编写代码将是昂贵的,我会选择另一个js框架,即使我最喜欢Ember。

所以我的问题是我有什么办法可以在ember中调整预期的json响应。如果是的话有多难?值得的时候或者我应该去Angular或Aurelia。

还是我完全错了,没有人对ember有任何预期的回应?

1 个答案:

答案 0 :(得分:1)

你可以用ember做的就是为此编写你自己的适配器,那里已经有很多问题+答案了:

  1. https://stackoverflow.com/a/17938593/1581725
  2. https://stackoverflow.com/a/24411550/1581725
  3. ...
  4. 此处还有一个博客条目:http://eviltrout.com/2013/03/23/ember-without-data.html它是关于使用没有余烬数据的ember。

    找到这个名为normalizePayload的小宝石 - 也许这也适用于您的情况:https://stackoverflow.com/a/21790093/1581725