【发布时间】:2021-01-29 16:29:20
【问题描述】:
假设我有一些客户端库,其中包含 HttpUtils 类。它有字段 API_VERSION
public class HttpUtils {
public static final int API_VERSION = 1;
private static final String JSON_CONTENT_TYPE = "application/json";
private final CookieStore cookieStore = new BasicCookieStore();
// Public HTTP request methods
public <Request extends HttpGetRequest, Response> Response
get(ConnectionConfig config, String endpoint,
Request request, Map<String, String> requestHeaders,
ResponseHandler<Request, Response> handler, int expectedStatusCode) {
return get(config, endpoint, request, Defaults.DEFAULT_HTTP_TIMEOUT, requestHeaders, handler, expectedStatusCode);
}
private static String getEndpointURI(String endpoint) {
return "/" + UrlParameters.API_SERVICE +
"/" + UrlParameters.VERSION_PREFIX + API_VERSION +
"/" + endpoint;
}
还有我想使用这个客户端调用的第三方 API,但是 API 已经更新,现在他们使用 API_VERSION = 2 来处理一些新的端点。如何正确地从 HTTPUtils 扩展并能够将这两个版本用于我的第三方 API 调用与 v1 和 v2 版本?
【问题讨论】:
-
您可以在方法的参数中发送API_VERSION的变量
-
HttpUtils 是一个库类,我改不了
标签: java api http versioning