【发布时间】:2018-05-14 18:33:11
【问题描述】:
我可能错误地考虑了模拟 API,但我认为值得一问。
我正在尝试创建一个具有基本视图和详细视图的对象,例如“基本作者”和“详细作者”。但是,我希望每个对象都返回一致的数据。例如,“author_name”之类的属性对于 basic-author 和 detail-author 应该是相同的。
我目前正在尝试通过生成作者列表并扩展它来实现这一点:
// mirage/scenarios/default.js
server.createList('author', 20);
// mirage/config.js
this.get('/basic-author', (schema) => {
return schema.basicAuthors.all();
});
// mirage/factories/author.js
import { Factory, faker } from 'ember-cli-mirage';
export default Factory.extend({
// bunch of properties, like author_name
});
// mirage/factories/basic-author.js, mirage/factories/detailed-author.js
import Author from './author';
export default Author.extend({
});
但是,很明显,这是行不通的,因为获取所有 basicAuthors 不会返回任何内容,因为数据库中没有“basic-author”。如果我尝试更改路由以返回所有作者,我的 ember 模型将无法工作,因为它返回了一个包含 20 个作者的列表,这是不正确的模型类型。
我也尝试过设置 faker 种子,但这使得每个项目都一样。
【问题讨论】:
-
如果这不可能,我也被告知不要担心我的模拟数据有一致的数据,并为“基本作者”和“详细作者”创建两个单独的列表。
标签: ember-cli-mirage