我想要一个使用 HTTP 请求标头的版本化 REST api:
获取 /someResource
版本:1.0
现在,如果我有这个资源的 2 个版本,我的 JaxRS Web 应用程序需要能够提供适合任何一个请求版本的响应。因此,我希望以下类成为我的类路径的一部分:
@Path("/someResource")
public class SomeResourceV1 {
**snip**
}
和
@Path("/someResource")
public class SomeResourceV2 {
**snip**
}
现在,我想根据 Version 标头将请求分派给这些资源类之一。我假设这将使用 servlet 过滤器来完成。但由于我使用的是 Guice,我认为我正在寻找的是一个按请求注入器。
如果请求的版本为 1.0,则使用带有 SomeResourceV1 绑定的注入器,否则如果请求的版本为 2.0,则使用带有 SomeResourceV2 绑定的注入器
我认为有一种方法可以通过继承 GuiceFilter 来获得我想要的东西,但我并不完全确定。有没有人尝试过这样的事情?