2017-10-18 135 views
0

我需要你的帮助,弄清楚如何拦截Jersey 1.9 RS调用并修改与路径参数匹配的查询参数。Jersey 1.9 - 如何获得路径参数名称和相应的值

比方说,我有一个RS类:

@Path("/bookstore") 
public class BookStore { 

    @GET 
    @Path("/books/{bookName}") 
    public Book addBook(@PathParam("bookName") String bookName, @QueryParam("isLegacy") String isLegacy) { 
     return book; 
    } 
} 

我想截获此RS调用,并从路径或查询参数的bookName。如果bookName是“蜘蛛侠”,那么我想修改请求的查询参数isLegacy为false。

这个例子显然是全部组成的。

他们的方式是通过过滤器,AOP或任何类似的机制来做到这一点?我正在使用Guice,Jersey 1.9。

谢谢!

回答

0

您需要创建一个扩展为PerRequestTypeInjectableProvider的类,并使用@Provider对其进行注释。通过重写getInjectable方法,您可以告诉Jersey如上所述修改查询参数。

相关问题