通过修改和删除通配符

时间:2013-05-13 20:17:22

标签: node.js restify

问题:如何在accept-version标头中指定通配符semvar? (Restify 2.5.0)

目标:接受1.x.x.查看文档,看起来这是通过将semver设置为~1或1.x来实现的。然而,Restify似乎没有处理这个问题。

服务器

  var server = restify.createServer({
            version: '1.1.0',...

路线:

  server.get({
                    path: /^\/([a-zA-Z0-9_\.~-]+)\/(.*)/,
                    version: '1.x' // also tried '~1'
            },
            function(req, res, next){
                    req.log.debug(req.params,'Request');
                    res.send(req.params);
    });

结果:

{"code":"InvalidVersion","message":"* is not supported by GET /sys/blah"}

我能够通过设置routes version to '1.0.5'(范围中的示例)然后指定clients accept-version to ~1来实现此功能,但是,似乎更适合在服务器上设置通配符侧。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

服务器应该是它所公开的版本的权限,因此它无法模糊/合理关闭(使用波浪号前缀)。

Restify正在使用semver来公开版本(更具体地说是node-semver)所以~1不是有效版本。正如您所发现的那样,客户可以根据需要询问具体版本或要求范围。