2017-08-03 1 views
0

は、私はそうのような設定である基本的なAPIを持っている...ミラージュ+ JSONAPIアレイ

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

は、彼らはそれぞれのみサポートGET、およびユーザーは、彼らがする必要があります/ API/V1 /ログに要求した場合すべてのログを取得します。

私は工場やシナリオをMirageでセットアップしていますが、実際にはさまざまなタイプの配列を返す方法がわかりません。

私の現在のconfig.jsは、未定義のリソースタイプについてエバーに不平を言っています。

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

私は間違っていますか?

+0

私が提供した回答を試す機会がありましたか? – alptugd

答えて

0

mirageのconfig.jsの典型的なルート定義(複数のデータを返す)から返されるものはCollectionです。つまり、コレクションを返す必要があります。だから、sth。次のような作業をする必要があります:

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); 
    }); 
} 

を私が最初にあなたの問題を誤解し、タイプのためにすべてのログとフィルタを作成するための別のアプローチを取り、あなたのために、次のtwiddleを作成しました。しかし、その後、それぞれのタイプごとに異なるデータを作成し、必要なものはすべてをマージすることに気付きました。その後、私は準備したひねりにマージされたタイプ2とタイプ3のログを追加することに決めました。あなたは、this.get('/logs/type2type3-logs', function(schema){....}の定義の下で、上記で私が実行したコードの例をmirage/config.jsの中で見ることができます。これがあなたに役立つことを願っています。