2017-08-03 6 views
0

J'ai une api de base qui est configuré comme si ...Mirage + JSONAPI Tableau

/api/v1/logs/ 
/api/v1/logs/type1-logs 
/api/v1/logs/type2-logs 
/api/v1/logs/type3-logs 

Ils chaque GET support uniquement, et si l'utilisateur fait une demande/api/v1/logs ils devraient être obtenir tous les journaux.

J'ai les usines et les scénarios mis en place dans Mirage, mais je ne sais pas comment retourner un tableau de types différents.

Mon config.js actuel provoque le fait que le membre se plaigne d'un type de ressource indéfini.

this.get('/logs', function(db, request) { 
    let data = { 
     data: [ 
     db.type1Logs, 
     db.type2Logs, 
     db.type3Logs 
     ] 
    }; 
    return data; 
    }); 

Qu'est-ce que je fais mal?

+0

avez-vous eu la chance d'essayer la réponse que j'ai fournie? – alptugd

Répondre

0

Ce qui est retourné à partir d'une définition de route typique (qui renvoie plusieurs données) dans le fichier config.js de mirage est de type Collection. Cela signifie que vous devez retourner une collection. Alors sth. semblable à celui-ci devrait fonctionner:

import { Collection } from 'ember-cli-mirage'; 

export default function() { 
    this.get('/logs', function(db, request) { 
     let models = Ember.A(); 
     models.pushObjects(db.type1Logs.all().models); 
     models.pushObjects(db.type2Logs.all().models); 
     models.pushObjects(db.type3Logs.all().models); 

     return new Collection('log', models); 
    }); 
} 

J'ai d'abord mal compris votre problème et a pris une approche différente de la création de tous les journaux et le filtrage des types et créé le twiddle pour vous suivre. Mais ensuite, j'ai réalisé que vous avez créé des données différentes pour chaque type et ce dont vous avez besoin est juste de les fusionner tous. Puis j'ai décidé d'ajouter les logs type2 et type3 fusionnés au twiddle que j'avais préparé. Vous pouvez voir un exemple du code que j'ai fourni ci-dessus en action au sein de mirage/config.js sous la définition this.get('/logs/type2type3-logs', function(schema){....}. J'espère que cela t'aidera.