-
Notifications
You must be signed in to change notification settings - Fork 2
Project modules
Основное отличие EasyDonate4J 2.0
от старых версий - Модульность.
Такая система предоставляет разработчику выбор среди наборов имплементаций сервисов для работы с JSON и HTTP протоколом.
В размещённых ниже таблицах Вы можете изучить предназначение каждого такого модуля в проекте.
В колонке Artifact ID
размещены тэги artifactId
соответствующих зависимостей, которые Вы и будете подключать к Вашему
проекту, если он построен на базе конфигурации Maven. Для тэга groupId
всегда используется ru.easydonate.easydonate4j
, а
актуальную версию для всех модулей Вы можете увидеть в самом низу страницы.
Соответственно, при использовании Gradle Вам достаточно будет указать groupId
, artifactId
и версию через :
.
Я думаю, Вы прекрасно знаете, как подключаются зависимости в используемом Вами инструменте сборки :)
ВАЖНО! Примеры конфигураций зависимостей ниже не обновляются, потому в них может быть указана не самая последняя версия модулей.
Обновляйтесь до последней версии, ориентируясь по эмблеме с актуальной версией ниже этого сообщения.
Модули из списка ниже предоставляют набор классов и интерфейсов для работы с данными API EasyDonate.
Если Вы хотите работать с определённым API, Вам необходимо в первую очередь подключить соответствующий модуль.
Название API | Artifact ID | Предназначение |
---|---|---|
API v3 | api-v3 |
Содержит SDK для работы с API платформы версии 3. Позволяет получать информацию о магазине и подключённых плагинах. |
Callback API | callback-api |
Предоставляет инструменты для работы с Callback API на стороне сервера: Систему событий, их слушателей, а также инструменты проверки подписей. |
Пример подключения зависимости в Maven:
<dependency>
<groupId>ru.easydonate.easydonate4j</groupId>
<artifactId>api-v3</artifactId>
<version>2.0.6</version>
</dependency>
Данный сервис используется для работы с HTTP протоколом, т.е., непосредственно, для отправки запросов на API сервер.
Выбирайте подходящий модуль под Ваше рабочее окружение.
Например, если Вы разрабатываете Bukkit плагин на базе EasyDonate4J, то оптимальным вариантом для Вас будет сервис на базе JDK Legacy
.
Он основан на встроенном в JDK 8 инструментарии и едва ли добавит веса Вашему плагину.
Сервис | Artifact ID | Версия Java | Зависимости | Описание |
---|---|---|---|---|
Apache | apache-http-client |
Java 8+ | HTTP Client 5 (Apache) |
Сервис на базе клиента от Apache. |
JDK Legacy | jdk-legacy-http-client |
Java 8+ | — | Очень лёгкий и совместимый сервис на базе встроенного в JDK инструментария. |
JDK Modern | jdk-modern-http-client |
Java 11+ | — | Сервис на базе нового встроенного HTTP Client API из Java 9. |
Okhttp3 | okhttp3-http-client |
Java 8+ | Okhttp (Squareup) | Сервис на базе API от OkHttp 3. |
Пример подключения зависимости в Maven:
<dependency>
<groupId>ru.easydonate.easydonate4j</groupId>
<artifactId>jdk-legacy-http-client</artifactId>
<version>2.0.6</version>
</dependency>
Важно! Не забудьте зарегистрировать выбранный Вами сервис в рабочем окружении SDK!
Пример регистрации выбранного сервиса:
ApacheHttpClientService.registerIfNotRegisteredYet(); // Apache
JDKLegacyHttpClientService.registerIfNotRegisteredYet(); // JDK Legacy
JDKModernHttpClientService.registerIfNotRegisteredYet(); // JDK Modern
OkHttpClientService.registerIfNotRegisteredYet(); // OkHttp3
Данный сервис используется для десериализации Java моделей из ответов от API сервера.
Именно он и преобразует JSON ответы в нужные модели, с которыми Вы далее работаете.
Как и в случае с предыдущим сервисом, для Bukkit плагина рекомендую Вам использовать сервис на базе GSON.
В дополнение к этому, Вы можете исключить зависимость этого модуля от GSON, поскольку эта библиотека уже вшита в ядро сервера игры.
НО! На старых версиях (ниже 1.12) эта библиотека в ядре отсутствует.
Поэтому Вам желательно оставить шейдинг GSON в JAR Вашего плагина для совместимости со старыми версиями.
Просто используйте relocation
из shade
плагина для подмены пакета GSON в этом случае, как показано здесь.
Сервис | Artifact ID | Версия Java | Зависимости | Описание |
---|---|---|---|---|
GSON | gson-json-provider |
Java 8+ | GSON (Google) | Имплементации моделек на базе GSON. Отлично подходит для Bukkit плагинов. |
Jackson | jackson-json-provider |
Java 8+ | Jackson (FasterXML) |
Имплементации моделек на базе Jackson. Несколько быстрее и удобнее GSON, но толстоват. |
Пример подключения зависимости в Maven:
<dependency>
<groupId>ru.easydonate.easydonate4j</groupId>
<artifactId>gson-json-provider</artifactId>
<version>2.0.6</version>
<!-- Исключение зависимости GSON при условии, -->
<!-- что она предоставляется ядром сервера -->
<exclusions>
<exclusion>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
</exclusion>
</exclusions>
</dependency>
Важно! Не забудьте зарегистрировать выбранный Вами сервис в рабочем окружении SDK!
Пример регистрации выбранного сервиса:
GsonSerializationService.registerIfNotRegisteredYet(); // GSON
JacksonSerializationService.registerIfNotRegisteredYet(); // Jackson
Ниже представлен пример конфигурации проекта на базе Maven (pom.xml) для Bukkit плагина.
<properties>
<!-- EasyDonate4J version -->
<easydonate4j.version>2.0.6</easydonate4j.version>
</properties>
<dependencies>
<!-- EasyDonate4J - API v3 -->
<dependency>
<groupId>ru.easydonate.easydonate4j</groupId>
<artifactId>api-v3</artifactId>
<version>${easydonate4j.version}</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>ru.easydonate.easydonate4j</groupId>
<artifactId>gson-json-provider</artifactId>
<version>${easydonate4j.version}</version>
<scope>compile</scope>
<exclusions>
<exclusion>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>ru.easydonate.easydonate4j</groupId>
<artifactId>jdk-legacy-http-client</artifactId>
<version>${easydonate4j.version}</version>
<scope>compile</scope>
</dependency>
</dependencies>
Конечно, подключить модули - ещё недостаточно.
Вам необходимо также зарегистрировать их в Вашем рабочем окружении:
public final class MyAwesomePlugin extends JavaPlugin {
@Override
public void onEnable() {
// TODO primary #onEnable() logic
// EasyDonate4J modules registration
GsonSerializationService.registerIfNotRegisteredYet();
JDKLegacyHttpClientService.registerIfNotRegisteredYet();
// TODO EasyDonate4J client instance initialization
}
}
© 2022 EasyDonate Community
Спасибо за использование EasyDonate4J!Сообщить об ошибке или предложить идею: ВКонтакте | Telegram
Домашняя страница | Подключение к проекту | Работа с SDK | Реализованные методы