gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-04 15:18:56 24 4
gpt4 key购买 nike

我想要获取代码

WebTarget targetBase = ...
targetBase.path("some_path").request(MEDIA_TYPE).get(new GenericType<List<MyModel>>(){});

然后写这样的内容

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>>(){});
...

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

最佳答案

如果您想为客户端添加日志记录,您可能应该通过客户端请求 filter 来完成此操作。您可以通过 Feature 在客户端中注册过滤器.

示例:

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;
}
};

您还可以添加不同的功能,具体取决于您想要执行的操作。

关于java - 是否可以使用运行时解析的 GenericType 参数来调用 Java JAX-RS 请求方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20624326/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com