默认情况下,请求
GET /Travels
将列出 Travel 模型的每个元素。如果您设置适当的关系(可能是用户和旅行之间的多对多关系),则查询给定用户旅行的正确方法是
GET /Users/{id}/Travels
Travels.find()
但是您可以自定义使用钩子、范围甚至重载方法原型的默认行为。
关于/Travels/public
这很简单,您只需要创建一个远程方法。使用该path
属性自定义端点。
最后,加入带有请求的旅行/Travels/{id}/join
也将使用远程方法进行管理,但这应该是一个 POST 请求。
Loopback 能够在不指定关系表的情况下管理多对多关系,但在您的情况下,我宁愿定义它。例如
{
"name": "UserTravel",
"options": { ... },
"properties": {
"id":{"type":"Number", "id":1},
"userId":{"type":"Number"},
"travelId":{"type":"Number"}
},
"relations": {
"Travel": {
"type": "belongsTo",
"model": "Travel",
"foreignKey": "travelId"
},
"User": {
"type": "belongsTo",
"model": "User",
"foreignKey": "userId"
}
}
}
join
手头有此模型将允许您在调用端点时插入特定的用户/旅行元组。您从请求参数中获取 travelId,从请求 accessToken 中获取 userId,提供用户在您的应用程序中经过身份验证的提供程序。