我试图根据json:api format使用sails.js构建一个简单的API。这样我就可以在Ember.js中使用它而无需修改适配器。
我在风帆中使用了蓝图生成器,如下所示:
sails generate api posts
但是http://127.0.0.1:1337/posts
的基础资源给出了响应:
[
{
"id": 1,
"createdAt": "2014-11-08T14:45:23.328Z",
"updatedAt": "2014-11-08T14:45:23.328Z",
"title": "Example post",
"body": "This is a test"
}
]
但显然我想要一个基础对象,所以我得到这样的响应:
{
"posts": [
{
"id": 1,
"createdAt": "2014-11-08T14:45:23.328Z",
"updatedAt": "2014-11-08T14:45:23.328Z",
"title": "Example post",
"body": "This is a test"
}
]
}
我是如何在Ember.js中做到这一点的?
修改:我使用Ember Data作为数据存储和适配器。
答案 0 :(得分:1)
所以在环顾四周之后,我还没有找到我问题的具体答案,但这就是我弄清楚它的方法。
查看Sails.js蓝图,它会为API生成响应目录。在这里有一个ok.js
文件,用于处理200响应的数据服务。
文件:api/responses/ok.js
。
有以下几条返回行:
return res.jsonx(data);
由于我的API中只有一个资源,我将代码更改为:
return res.jsonx({ "posts": data });
这将数据包装在默认情况下ember数据所需的根对象中。