Добавление метаданных в обработчик маршрута ember-cli-mirage

Мне нужно вернуть метаданные в моем обработчике маршрута ember-cli-mirage вместе с сериализованными объектами в моих тестах

server.createList('things', 42);

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

Я бы хотел, чтобы обработчик маршрута выводил:

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

Есть ли способ настроить Mirage для этого или мне нужно явно устанавливать эти данные при каждом запросе?


person Rimian    schedule 15.08.2019    source источник


Ответы (1)


Ember CLI Mirage использует сериализаторы, похожие на Ember Data, которые позволяют вам делать такие вещи. Добавление метаданных явно указано для метода serialize сериализатора Ember CLI Mirage в документации:

Вы также можете переопределить этот метод, вызвать 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;
}
person jelhan    schedule 15.08.2019