可以使用运行时解析的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;
}
};