幻影+ JSONAPI阵列
问题描述:
我有一个基本的API,它是安装程序是这样的...幻影+ JSONAPI阵列
/api/v1/logs/
/api/v1/logs/type1-logs
/api/v1/logs/type2-logs
/api/v1/logs/type3-logs
他们每人只支持GET,如果用户发出请求到/ API/V1 /日志,他们应该是获取所有日志。
我在Mirage有工厂和场景设置,但我不确定如何实际返回不同类型的数组。
我目前的config.js导致ember抱怨未定义的资源类型。
this.get('/logs', function(db, request) {
let data = {
data: [
db.type1Logs,
db.type2Logs,
db.type3Logs
]
};
return data;
});
我在做什么错?
答
从幻象的config.js中的典型路由定义(它返回多个数据)返回的是Collection。这意味着你需要返回一个集合。所以......类似于以下应该工作:
import { Collection } from 'ember-cli-mirage';
export default function() {
this.get('/logs', function(db, request) {
let models = Ember.A();
models.pushObjects(db.type1Logs.all().models);
models.pushObjects(db.type2Logs.all().models);
models.pushObjects(db.type3Logs.all().models);
return new Collection('log', models);
});
}
最初我误解你的问题,并把创建所有日志和滤波类型不同的方式,为您创建以下twiddle。但后来我意识到你为每种类型创建了不同的数据,你需要的仅仅是合并所有这些数据。然后,我决定添加type2和type3日志合并到我准备的旋转。您可以在mirage/config.js
的this.get('/logs/type2type3-logs', function(schema){....}
定义下看到我在上面提供的代码示例。我希望这能帮到您。
你有没有机会尝试我提供的答案? – alptugd