You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 06:55:29