【发布时间】:2015-07-03 11:17:41
【问题描述】:
警告:网络编程新手。我在一个风帆项目中有以下内容:
// in models/User.js
// user has many videos
module.exports = {
attributes: {
videos: {
collection: 'video',
via: 'owner'
}
}
}
// in models/Video.js
// video has one user
module.exports = {
attributes: {
owner: {
model: 'user'
}
}
}
我正在使用带有 /v1 前缀的 REST 蓝图。我正在尝试覆盖 GET /v1/user/:id/video,或者创建自定义路由到 GET /v1/user/:id/myGetVideo
所以我尝试了以下方法:
在 VideoController.js 和 UserController.js 中查找和 findOne 方法。这些不会触发 GET /v1/user/:id/video - 我猜是因为多对一关联的处理方式不同
-
创建自定义路线
// 在 routes.js 中 模块.exports.routes = { 'get /user/:id/myGetVideo': 'UserController.myGetVideo' }
由于命名空间,这不会触发任何事情,但它会按预期触发 /user/:id/myGetVideo。我不想在这里添加 /v1 命名空间 b/c 会激增并成为更改版本的问题。
那么,我该如何重写我想要的方法,或者将它放在命名空间中?覆盖第一个方法似乎更干净,但 idk。
感谢您的帮助!
编辑:关于什么是 REST API 的更好实践的任何 cmets?
【问题讨论】:
标签: node.js rest routes sails.js