I'm using Strongloop's loopback tool to create a REST service. I'm wondering how to define what related entities to return when requesting a model.
I see in the docs that you can send a request like GET /api/members?filter[include]=posts
and that will return the related post models, and I discovered that you can make a request like GET /api/members?filter[include]=posts&filter[include]=comments
to get posts and comments, but is there a way to define either in code or the generated json file that you'd like a certain relation to always be returned when requesting a model?
The preset filter properties are referred as default scope. We have a pending pull request to support that. Please see https://github.com/strongloop/loopback-datasource-juggler/pull/296.
As a workaround before the feature is released, you can use beforeRemote hooks to update the filter object with your default scope. See http://docs.strongloop.com/display/LB/Defining+remote+hooks.
You can use two different easy methods to get relationships to the account.
Using Model definitions in the Model.json file.
"validations": [],
"relations": {
"team": {
"type": "belongsTo",
"model": "Team",
"foreignKey": ""
},
"user": {
"type": "belongsTo",
"model": "User",
"foreignKey": ""
}
}
This will always bind one model with another models using direct relationships and you can retrieve them using following code lines.
app.models.TeamRole.findOne({
where: {
userId: user.id
},
include:[ {
relation: 'team'
},
{
relation: 'user'
} ]
},function(err,team,user){
//retrieve relational data here
});
- You can use operational hooks concept to obtain such kinds of relations easily.
Cheers.