【问题标题】:Adding meta data in ember-cli-mirage route handler在 ember-cli-mirage 路由处理程序中添加元数据
【发布时间】:2019-12-21 12:36:13
【问题描述】:

我需要在我的 ember-cli-mirage 路由处理程序数据中返回 meta 以及我的测试中的序列化对象

server.createList('things', 42);

this.get('/things', function(schema, request) {
  return this.serialize(this.schema.things.all());
});

我希望路由处理程序输出:

{ data: ..., meta: { 'record-count': 42 } }

有没有办法设置 Mirage 来执行此操作,还是我需要在每个请求上明确设置该数据?

【问题讨论】:

    标签: ember.js acceptance-testing json-api ember-cli-mirage


    【解决方案1】:

    Ember CLI Mirage 使用类似于 Ember Data 的序列化程序,允许您执行此类操作。文档中明确提到了为 Ember CLI Mirage 的序列化程序的 serialize method 添加元数据:

    您还可以覆盖此方法、调用 super 并在 Mirage 响应数据之前对其进行操作。这是添加元数据的好地方

    我没有测试过上面的代码,但它应该给你一个想法:

    serialize(primaryResource, request) {
      // This is how to call super, as Mirage borrows [Backbone's implementation of extend](http://backbonejs.org/#Model-extend)
      let json = Serializer.prototype.serialize.apply(this, arguments);
    
      // Add metadata, sort parts of the response, etc.
      json.meta = {
        'record-count': primaryResource.length,
      };
    
      return json;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多