Я пишу приложение, которое должно работать как на настольном компьютере, так и на мобильном устройстве, и оно должно взаимодействовать с сервером с помощью REST. Я использую Gluon Mobile.
Код, который я пишу на стороне клиента, совместим с jax-rs и выглядит так:
import javax.ws.rs.client.Client;
import javax.ws.rs.client.ClientBuilder;
import javax.ws.rs.client.WebTarget;
import javax.ws.rs.core.Response;
Client client = ClientBuilder.newBuilder().build();
WebTarget target = client.target("http://www...").path("/login/...");
Future<Response> future = target.request().async().get();
Response response = future.get();
и я указываю зависимость от реализации, такой как клиенты RESTEASY или Jersey.
Gluon Connect имеет реализацию REST, но не совместим с JAX-RS:
RestClient restClient = RestClient.create()
.method("GET")
.host("https://...")
.path("/login/...")
...
Это означает, что моему клиенту нужны 2 версии кода. Я хотел бы написать один раз запустить где-нибудь, как я получаю с остальной частью моего кода. Является ли это возможным? Есть ли реализация JAX-RS, которую я могу использовать на Android и IOS? Мне нужно сказать Gradle использовать одну реализацию при создании рабочего стола и другие для Android и IOS правильно?