Как разработать проект Java, чтобы включить динамическую загрузку класса на основе версии APIJAVA

Программисты JAVA общаются здесь
Anonymous
Как разработать проект Java, чтобы включить динамическую загрузку класса на основе версии API

Сообщение Anonymous »

В настоящее время я пытаюсь создать пользовательский проект Java API, который я могу использовать в своем другом проекте. Проект попытается вызвать конечные точки API на сервер. Этот сервер имеет различную поддержку версии API. Абонент из основного проекта может иметь сервер любой версии (будет ограничен диапазоном версии, которую мы поддерживаем). Как я могу создать Java Project, который, например, динамически загружает необходимый класс и вызывает необходимые конечные точки API. Конечные точки для каждой версии должны быть довольно похожими в доступных функциях. Не думайте, что это изменится на основе версии, но, возможно, параметр запроса и их структура могут измениться. Но я не ожидаю, что сама функциональность не хватает между версиями.
Мои интенсивные мысли - это что -то вроде этого < /p>

Код: Выделить всё

multiversion-sdk/
├── build.gradle
├── settings.gradle
├── README.md
├── sdk-common/
│   ├── build.gradle
│   └── src/main/java/com/emc/server/
│       ├── ServerClient.java
│       ├── ApiProvider.java 
Реализация провайдера API < /p>
public class ApiProvider {

private final Map implementationClass = Class.forName(implementationClassName);
Constructor constructor = implementationClass.getConstructor(ApiClient.class);
return (T) constructor.newInstance(this.apiClient);
} catch (Exception exception) {
throw new RuntimeException("Failed to create API implementation", exception);
}
}
}

< /code>
Основное использование проекта < /p>
// Create client in the Hyperion project.
// we can either pass the version directly or just pass the credentials and let the lib do a common api call to get the version first and then build the Apiclient accordingly
IsilonClient client = new IsilonClient(
"https://isilon:8080",
"admin",
"password",
"9.3.0"  // Will use 9.2.1
);
// Use APIs
SnapshotApi snapshotApi = client.api(SnapshotApi.class);
snapshotApi.createSnapshot(params);

В моем случае, если у сервера нет версии, которую мы не поддерживаем, мы откатимся и используем последнюю последнюю версию, которую мы в настоящее время поддерживаем

Подробнее здесь: https://stackoverflow.com/questions/796 ... the-api-ve

Вернуться в «JAVA»