java - 如何编写 Java (v11) REST 客户端库以模块化方式调用多个 Spring 微服务?
问题描述
我正在编写一个 Java 库,它将调用多个基于 Spring 的微服务/REST 端点来执行 GET/PUT/POST 等。计划使用 OkHttpClient 库以同步和/或异步方式调用这些服务。
编写一个基类来建立与每个服务的连接是否有意义?
public class ConnectionKlass {
private OkHttpClient client;
int timeout;
int wTimeout;
public ConnectionKlass(int timeout, boolean wTimeout){
this.client=new OkHttpClient.Builder()
.connectTimeout(timeout, TimeUnit.SECONDS)
.writeTimeout(wTimeout, TimeUnit.SECONDS)
.build();
}
}
然后像下面这样编写每个服务客户端类?
public class ValidationServiceClient {
private connection;
public ServiceAClient(reqId, timeout, wTimeout) { this.connection = ConnectionKlass(..); }
public validate(headers, body..) {...}
public asyncValidate(headers, body..) {...}
...
}
public class MessageServiceClient {
private connection;
public ServiceBClient(reqId, timeout, wTimeout) { this.connection = ConnectionKlass(..); }
public notify(eventType, message) {...}
public asyncNotify(eventType, message) {...}
...
}
我对 Java 并不陌生,但对 J2EE 世界并不陌生。试图衡量一个好的设计/实现是什么样的?我应该使用特定的设计模式来最大化模块化和易于维护性吗?