2

我看不到在两种路线因素之间做出决定的依据。我的问题是什么因素是决定之间的关键:

  • 更多路线 - 更少的参数
  • 更少的路线 - 更多的参数 - 处理程序中的逻辑

下面的两个示例是我的实际案例,但我认为这是一个普遍的问题。

我的基线是 2 条路线,每条路线有 2 个参数:

URI's:
/poweronoff?id=4&val=1
/powerset?id=7&val=75

// app.js
app.get('/poweronoff', mymodule.poweronoff);
app.get('/powerset', mymodule.powerset);

// mymodule
exports.poweronoff= function(req, res){
   setonoff(req.query.id, req.query.val, req, res);
   }

exports.powerset = function(req, res){
   setvalue(req.query.id, req.query.val, req, res);
   }

备用因式分解是 1 个具有 3 个参数的路由。

URI's:
/power?action=onoff&id=4&val=1
/power?action=set&id=7&val=75

// app.js
app.get('/power', mymodule.power);

// mymodule
exports.power = function(req, res){
  if (req.query.action = 'onoff') {
    setonoff(req.query.id, req.query.val, req, res);
  }
  else {
    setvalue(req.query.id, req.query.val, req, res);
  }
}

这两个似乎和我差不多。区别在于路由表中有一个分支,而 mymodule 中有一个 if 分支。是否存在缓存、记忆或其他因素使平衡倾向于这些因素之一?客户端是否有影响?

4

1 回答 1

0

这是一个没有正确答案的哲学问题。

  • 如果您实现 REST 服务,您可能希望使用RESTful URI设计。
  • 如果您可以自由选择,但您喜欢简洁的设计,您可能会坚持使用简洁的 URL设计。
  • 如果您只是想了解良好 URL 设计的一般原则,您可能想查看这个很好的答案
于 2014-02-15T21:00:05.940 回答