我正在开发一个Nodejs + Express项目并遇到这种情况:
这是我的控制器:
app.use('/user', router);
/*
GET: /user
*/
router.route('/:page?/:limit?')
.get(function(req, res) {
responseUtil.sendResponse(service.allRecords(req), req, res);
});
/*
POST: /user
*/
router.route('/')
.post(function(req, res) {
responseUtil.sendResponse(service.saveRecord(req), req, res);
});
/*
GET: /user/1
PUT: /user/1
DELETE: /user/1
*/
router.route('/:id')
.get(function(req, res) {
responseUtil.sendResponse(service.findRecord(req), req, res);
})
.delete(function(req, res) {
responseUtil.sendResponse(service.deleteRecord(req), req, res);
})
.put(function(req, res) {
responseUtil.sendResponse(service.updateRecord(req), req, res);
});
问题是以下路线存在冲突:
/:page?/:limit?
和
/:id
由于页面和限制是可选的,因此有以下几种可能性:
/user (all users)
/user/1 (by id)
/user/1/10 (page and limit)
/user/1 (by page)
如何解决这个问题?我在API命名约定中遗漏了什么吗?
答案 0 :(得分:0)
您可以使用
aggregate: [ { field: "owing", aggregate: "sum" } ],
(查询参数)
{ field: "owing", title: "Total Price", footerTemplate: "Total Amount: #=sum#" }
(将网址分开)