我通过 Play 公开了一个 HTTP API,为了管理破坏兼容性的更改,URL 包含版本号。目前,这看起来如下所示:
GET /api/v1/someMethod com.foo.Api.someMethod()
当我对其中一种方法的输出进行更改时,我想支持 v2。不过,对于大多数方法,行为是相同的,所以我不在乎使用哪个版本。我试图将上面的行修改为:
GET /api/v:version/someMethod com.foo.Api.someMethod()
但是 Play 无法编译它,并出现错误Missing parameter in call definition: version
。
我知道我没有在调用中使用版本参数——因为我不需要!有没有一种明智的方法来实现我在这里所追求的,或者让 Play 跳过这个检查,或者在没有作为参数捕获的路由中放置一个通配符?
(我想如果不是,我可以将参数添加到方法定义中,然后忽略它。但如果可能的话,我宁愿避免这种情况。)