Angular 6中InMemoryDbService的作用及多测试对象获取方法咨询
当然支持多对象数据集!
你完全不用担心只能用一组固定测试数据,angular-in-memory-web-api的InMemoryDbService是完全支持创建多组可扩展的测试数据集的。你现在的代码只返回了groups这一组数据,所以才只能获取这一组,调整一下createDb()的返回结构就行。
修改方法很简单:
在createDb()里,返回一个包含多个键值对的对象,每个键就是你的数据集名称,对应的值就是该组的测试数据数组。比如我们再加一组heroes数据:
import { InMemoryDbService } from 'angular-in-memory-web-api'; export class InMemoryDataService implements InMemoryDbService { createDb() { const groups = [ {id: 0, name: 'Mr. Nice'}, {id: 12, name: 'Narco'}, {id: 13, name: 'Bombasto'}, {id: 14, name: 'Celeritas'}, {id: 15, name: 'Magneta'}, {id: 16, name: 'RubberMan'}, {id: 17, name: 'Dynama'}, {id: 18, name: 'Dr IQ'}, {id: 19, name: 'Magma'}, {id: 20, name: 'Tornado'}, ]; // 新增另一组测试数据 const heroes = [ {id: 1, name: 'Superman'}, {id: 2, name: 'Batman'}, {id: 3, name: 'Wonder Woman'} ]; // 返回包含多个数据集的对象 return {groups, heroes}; } }
如何请求不同的数据集?
之后你就可以通过对应的API路径来获取不同组的数据了:
- 获取groups数据:请求
/api/groups - 获取heroes数据:请求
/api/heroes
和你之前请求单组数据的方式完全一致,只是把路径里的资源名换成你返回对象里对应的键名就行。而且每组数据都支持内置的增删改查操作,只要每个数据对象有唯一的id字段就可以。
内容的提问来源于stack exchange,提问作者awesomeAsker2188
相关产品推荐
相关产品推荐

