调整通配符和通配符

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

目标:接受1.xx查看文档,看起来这是通过将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'设置routes version to '1.0.5' (范围中的示例),然后指定clients accept-version to ~1来获得此工作,但是,似乎它更适合设置通配符服务器端。 有任何想法吗?

服务器应该是它暴露的版本的权威,所以它是没有意义的模糊/合理的closures(使用代字前缀)。

Restify正在使用semver来暴露版本(更具体地说是node-semver ),所以〜1不是有效的版本。 正如你发现的那样,客户可以要求一个特定的版本,或者要求一个范围。