我有一个名为的主干模型,User
它有一个urlRoot
. /api/users
因此,如果我创建一个 ID 为 5 的新模型,则 url 将为/api/users/5
.
我还实现了另一个端点,即获取单个用户的 Twitter 朋友。终点是/api/users/:id/twitter-friends
我是否需要使用 this 创建一个新集合url
并手动设置id
,或者我可以以某种方式在我的模型上创建一个方法,该方法将发出此请求并返回一个新集合实例(该用户的 Twitter 朋友的)。例如:
var user = new User({ id: 5 })
user.findTwitterFriends() // returns collection of users
或者,为此类数据创建一个唯一集合:
var user = new User({ id: 5 })
var users = new Users()
users.url = user.url() + '/find-friends/twitter' // /api/users/5/find-friends/twitter
users.fetch()
以这种方式处理 URL 的最佳做法是什么?有没有更好的办法?我对其他用途也有类似的需求,例如我的 API 端点可以通过用户名在/api/users/username/:username
. 为此,我必须手动设置 urlRoot:
var user = new User({ username: username })
user.urlRoot = user.urlRoot + '/username/' + username
user.fetch()
也许我应该以不同的方式设计我的 URL?我愿意接受所有建议。