2015-06-19 27 views
2

我試圖通過創建belongsTo關係來設置Loopback中的基本模型關係。在belongsTo關係中獲取完整的json結構

我有兩個型號定義如下:

Contract.json

{ 
    "name": "Contract", 
    "base": "PersistedModel", 
    "idInjection": false, 
    "options": { 
    "validateUpsert": true 
    }, 
    "mssql": { 
    "schema": "dbo", 
    "table": "Contract" 
    }, 
    "properties": { 
    "contractid": { 
     // some property stuff 
    }, 
    "validations": [], 
    "relations": { 
    "employee": { 
     "type": "belongsTo", 
     "model": "Employee", 
     "foreignKey": "" 
    } 
    }, 
    "acls": [], 
    "methods": [] 
} 

Employee.json

{ 
    "name": "Employee", 
    "base": "PersistedModel", 
    "idInjection": false, 
    "options": { 
    "validateUpsert": true 
    }, 
    "mssql": { 
    "schema": "dbo", 
    "table": "Employee" 
    }, 
    "properties": { 
    "employeeid": { 
     // some property definitions... 
    } 
    }, 
    "validations": [], 
    "relations": { 
    "contracts": { 
     "type": "hasMany", 
     "model": "Contract", 
     "foreignKey": "" 
    } 
    }, 
    "acls": [], 
    "methods": [] 
} 

當我做一個Contract一個GET請求,以此specfic id我得到結果:

調用:/api/Contracts/55

{ 
    "contractid": 55, 
    "employeeId": 83 
} 

目前爲止還不錯。但是,當我做了GET要求上Contract,也得到Employee的I希望得到像這樣的輸出繼電器:

呼叫:/api/Contracts/55/employee

{ 
    "contractid": 55, 
    "employee": { 
     "employeeid": 83 
    } 
} 

但是,相反,我只得到沒有Employee對象的Contract

{ 
    "employeeid": 83 
} 

這是爲什麼?

我做錯了什麼?還是我有錯誤的期望?

回答

2

你可以做/api/Contracts/55?filter[include]=employee

或:

/api/Contracts/55?filter={"include":"employee"} 

您可以設置合同模式默認範圍加入了 「範圍」 部分包括員工的對象:

"scope": { 
    "include": "employee" 
    } 
+0

酷,那他沒有把戲!但現在我想知道,這是你應該怎麼做的?換句話說,調用'/ api/Contracts/55/employee'應該只是返回一個'employee'對象? – Vivendi

+0

您可以使用默認範圍進行此默認行爲(添加到答案)。在很多情況下,由於可能需要額外的帶寬和數據庫調用,您不想返回整個圖表。 – conradj