DS.RESTAdapter预期的JSON响应的完整列表是什么?

48

我尝试编写一个基于express.js的自定义服务器来运行Ember.js应用程序。进展还算顺利,但我经常卡在猜测Ember Data在特定时刻期望什么JSON响应上。

这份全新的文档是个很好的起点http://emberjs.com/guides/models/the-rest-adapter/,但并不完整。

我的摸索让我理解(Ember pre4,Ember Data 11):

Context                                Server URL          Method     Req. Data                  Resp. Data
~~~~~~~                                ~~~~~~~~~~          ~~~~~~     ~~~~~~~~~                  ~~~~~~~~~~
Getting a list of all users            /users              GET                                   {"users":[{...},{...}]}
Getting a particular user              /users/123          GET                                   {"user":{...}}
Creating a user                        /users              POST       {"user":{...}}             ???
Updating a user                        /users/123          PUT        {"user":{...}}             ???
Deleting a user                        /users/123          DELETE     ???                        ???

Creating a user (bulkUpdate)           /users              POST       {"users":[{...},{...}]}    ???
Updating a user (bulkUpdate)           /users/bulk         PUT        {"users":[{...},{...}]}    ???
Deleting a user (bulkUpdate)           /users/123          DELETE     ???                        ???

有人可以帮我填写这些空白吗?

编辑,期望的JSON响应完整列表

这些响应来自于Ember Data REST适配器单元测试以及观察示例Ember Data应用程序上的网络流量。

Context                                Server URL          Method     Req. Data                  Resp. Data
~~~~~~~                                ~~~~~~~~~~          ~~~~~~     ~~~~~~~~~                  ~~~~~~~~~~
Getting a list of all users            /users              GET                                   {"users":[{...},{...}]}
Getting a particular user              /users/123          GET                                   {"user":{...}}
Creating a user                        /users              POST       {"user":{...}}             {"user":{...}}
Updating a user                        /users/123          PUT        {"user":{...}}             {"user":{...}}
Deleting a user                        /users/123          DELETE     N/A                        null

Creating a user (bulkCommit)           /users              POST       {"users":[{...},{...}]}    {"users":[{...},{...}]}
Updating a user (bulkCommit)           /users/bulk         PUT        {"users":[{...},{...}]}    {"users":[{...},{...}]}
Deleting a user (bulkCommit)           /users/bulk         DELETE     {"users":[1,2]}            {"users":[1,2]}

所以,基于这篇文章和其他研究。我写了这个要点来传达大多数情况。请留下反馈。谢谢。https://gist.github.com/ldong/c52f491a88935a8c24337c1326586f99 - Alan Dong
2个回答

25

不要盲目尝试,可以查看rest-adapter-test来获取帮助。

例如,若要填写有关批量更新响应数据的问题,请参考L738 中所描述的预期响应数据。

ajaxHash.success({ people: [
  { id: 1, name: "Brohuda Brokatz" },
  { id: 2, name: "Brocarl Brolerche" }
]});

哇,我真希望早点看到那个。谢谢你,迈克尔! - James Andres
1
更新过时的链接。如果将来移动了,基本上只需转到Github上的ember-data项目,并在项目中搜索rest_adapter_test.js - https://github.com/emberjs/data/blob/master/packages/ember-data/tests/integration/adapter/rest_adapter_test.js - Mike Grassotti
@MikeGrassotti:ember-data使用的JSON请求/响应格式基于什么标准?有没有完整的标准规范可以参考?ember-data是否完全实现了该标准? - blueFast
这个答案已经过时了,文件改名了,而且示例已经不存在了。请问有人能告诉我在 https://github.com/emberjs/data/blob/master/packages/ember-data/tests/integration/adapter/rest-adapter-test.js 中如何找到响应示例的代码? - Marecky
2017年链接:https://github.com/emberjs/data/blob/master/tests/integration/adapter/rest-adapter-test.js - Alan Dong

0

目前正在查找源代码rest-adapter-test.js中嵌套在类似于test("create - a payload with a new ID and data applies the updates"的块中的短语ajaxResponse(,以读取服务器所需的响应。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接