调整通配符和通配符
问题:如何在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不是有效的版本。 正如你发现的那样,客户可以要求一个特定的版本,或者要求一个范围。