因此,我有一个后端rails应用程序正在运行,它响应特定的请求,如下所示
{"id": 68,"name": "name","email": "email"}
但是在烬中,我得到了这个错误
Error: Assertion Failed: normalizeResponse must return a valid JSON API document:
* One or more of the following keys must be present: "data", "errors", "meta".
at Object.assert (index.js:163)
at normalizeResponseHelper (-private.js:7428)
at -private.js:13291
at Backburner._run (backburner.js:1010)
at Backburner._join (backburner.js:986)
at Backburner.join (backburner.js:757)
at -private.js:13287
at tryCatcher (rsvp.js:335)
at invokeCallback (rsvp.js:506)
at publish (rsvp.js:492)我试着把所有的东西都封装在“数据”数组中,然后我得到了这个错误。
Error: Assertion Failed: normalizeResponse must return a valid JSON API document:
* Top level of a JSON API document must be an object
at Object.assert (index.js:163)
at normalizeResponseHelper (-private.js:7428)
at -private.js:13291
at Backburner._run (backburner.js:1010)
at Backburner._join (backburner.js:986)
at Backburner.join (backburner.js:757)
at -private.js:13287
at tryCatcher (rsvp.js:335)
at invokeCallback (rsvp.js:506)
at publish (rsvp.js:492)我如何规范所有的一切,在哪里,后端还是前端?
update:我做了一个哈希响应= {:data=>@user},然后返回response.to_json,我得到了
Error: Assertion Failed: Encountered a resource object with an undefined type (resolved resource using (unknown))
at Object.assert (index.js:163)
at Class._normalizeResourceHelper (json-api.js:183)
at Class._normalizeDocumentHelper (json-api.js:133)
at Class._normalizeResponse (json-api.js:228)
at Class.normalizeSingleResponse (json.js:407)
at Class.normalizeSaveResponse (json.js:393)
at Class.normalizeCreateRecordResponse (json.js:351)
at Class.normalizeResponse (json.js:232)
at normalizeResponseHelper (-private.js:7421)
at -private.js:13291发布于 2019-08-15 22:15:21
ember-data的默认设置是使用JSON:API标准。但这并不是必需的,所以您有两个选择:
1)您可以修改服务器上的输出以满足该标准,有一些库可以帮助您这样做,但是我还没有走这条路线,所以我不了解当前的最新情况。
2)您可以告诉成员以不同的方式解析您的响应,您可以通过为您的应用程序定制adapter来做到这一点。
我们的API看起来很像您的API,在我的app/adapters/application.js文件中有:
import DS from 'ember-data';
export default DS.RESTAdapter.extend({
});记录在https://guides.emberjs.com/release/models/customizing-adapters/。这是一个完全支持的方式,以自定义成员,以满足您的需要和其他工具,如ember-cli-mirage也提供对这种较不结构化的REST适配器方法的支持。
发布于 2019-08-16 16:50:19
因此,我能够做到这一点的唯一方法是严格遵守JSON标准。
我改变了我的回应,使之与成员指南中指定的格式完全相同。
{
"data": {
"type": "user",
"id": "123",
"attributes": {
"name": "Jeff",
"email": "Jeff@abc.com"
}
}
}还在寻找一种覆盖它的方法
发布于 2019-08-15 17:00:22
我不知道Ember,但是从您提供的错误消息来看,有两个约束被突出显示。
考虑到这些信息,我会尝试返回以下内容:
{"data": {"id": 68,"name": "name","email": "email"} }https://stackoverflow.com/questions/57512091
复制相似问题