2017-08-03 100 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導致ember抱怨未定義的資源類型。

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

我在做什麼錯?

+0

你有沒有機會嘗試我提供的答案? – alptugd

回答

0

從幻象的config.js中的典型路由定義(它返回多個數據)返回的是Collection。這意味着你需要返回一個集合。所以......類似於以下應該工作:

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。但後來我意識到你爲每種類型創建了不同的數據,你需要的僅僅是合併所有這些數據。然後,我決定添加type2和type3日誌合併到我準備的旋轉。您可以在mirage/config.jsthis.get('/logs/type2type3-logs', function(schema){....}定義下看到我在上面提供的代碼示例。我希望這能幫到您。