【发布时间】:2013-11-14 19:17:09
【问题描述】:
我正在通过 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 跳过此检查,要么在未作为参数捕获的路由中放置通配符?
(我想如果不是,我可以将参数添加到方法定义中,然后忽略它。但如果可能的话,我宁愿避免这样做。)
【问题讨论】: