可以使用运行时解析的GenericType参数调用Java JAX-RS请求方法吗?

可以使用运行时解析的GenericType参数调用Java JAX-RS请求方法吗?,java,rest,jax-rs,Java,Rest,Jax Rs,我想要密码 WebTarget targetBase = ... targetBase.path("some_path").request(MEDIA_TYPE).get(new GenericType<List<MyModel>>(){}); WebTarget targetBase=。。。 targetBase.path(“某些路径”).request(媒体类型).get(新的GenericType(){}); 写下这样的东西 public <T> T

我想要密码

WebTarget targetBase = ...
targetBase.path("some_path").request(MEDIA_TYPE).get(new GenericType<List<MyModel>>(){});
WebTarget targetBase=。。。
targetBase.path(“某些路径”).request(媒体类型).get(新的GenericType(){});
写下这样的东西

public <T> T getViaRest( GenericType<T> myGenericType ) {
  return targetBase.path("some_path").request(MEDIA_TYPE).get(myGenericType);
}
...
getViaRest(new GenericType<List<MyModel>>(){});
getViaRest(new GenericType<List<MyModel2>>(){});
...
public T getViaRest(GenericType myGenericType){
返回targetBase.path(“某些路径”).request(媒体类型).get(myGenericType);
}
...
getViaRest(新的GenericType(){});
getViaRest(新的GenericType(){});
...

这样,我就可以有一个通用的getViaRest方法,我将自定义日志记录和错误处理代码放入其中,它可以用于我的所有模型。

如果您想为客户端添加日志记录,您可能应该通过客户端请求来完成。您可以通过在客户端中注册筛选器

例如:

Client client = ClientBuilder.newClient().register(NEW_FEATURE);

WebTarget targetBase = client.target("api");

targetBase.path("some_path").request(MEDIA_TYPE).get(new GenericType<List<MyModel>>(){});
您还可以添加不同的功能,具体取决于您尝试执行的操作

private static final Feature NEW_FEATURE = new Feature() {
    @Override
    public boolean configure(FeatureContext context) {
        context.register(new ClientRequestFilter() {
            @Override
            public void filter(ClientRequestContext requestContext) throws IOException {
                //do your stuff here
            }
        });
        return true;
    }
};