Гость
Map
Форумы / Java [игнор отключен] [закрыт для гостей] / Вызов REST из standalone приложения / 16 сообщений из 16, страница 1 из 1
22.06.2021, 11:09
    #40079289
J.Serge
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вызов REST из standalone приложения
Надо вызывать REST-сервисы из standalone приложения. Какую библиотеку посоветуете, чтобы минимум зависимостей?
...
Рейтинг: 0 / 0
22.06.2021, 11:37
    #40079291
Garrick
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вызов REST из standalone приложения
J.Serge,
зависит от деталей реализации. Самый универсальный вариант - Apache HTTPClient , но можно обойтись и только средствами JDK

Код: java
1.
2.
3.
4.
5.
6.
String uri = "http://localhost:8080/CustomerService/rest/customers/1";
URL url = new URL(uri);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
InputStream is = connection.getInputStream();
connection.disconnect();



остаётся привести InputStream у нужному вам виду. Тут, конечно, сильно упрощено - скорее всего для реального сервиса понадобятся какие-то дополнительные настройки/свойства.
...
Рейтинг: 0 / 0
22.06.2021, 11:38
    #40079292
chpasha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вызов REST из standalone приложения
я люблю такие, в которых меньше всего руками что-то делать нужно. для андроида я использую retrofit (зависимость только от okhttp), для явы оно вроде тоже годится. Есть еще feign - вдохновленная идеями retrofit, более продвинутая, но возможно продвинутость не особо требуется в вашем случае.
...
Рейтинг: 0 / 0
22.06.2021, 11:45
    #40079294
chpasha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вызов REST из standalone приложения
Garrick
Самый универсальный вариант

зачем такая ... вприсядку? как говорится, почувствуй разницу
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
public interface CustomerService {
  @GET("/CustomerService/rest/customers/{id}")
  Call<Customer> getCustomer(@Path("id") id);
}

Retrofit retrofit = new Retrofit.Builder()
    .baseUrl("http://localhost:8080")
    .build();

CustomerService service = retrofit.create(CustomerService.class);
//sync
var customer = service.getCustomer(1).execute();
//async
service.getCustomer(1)
          .enqueue(customer -> System.out.println("Customer retrieved: " + customer.name);
...
Рейтинг: 0 / 0
22.06.2021, 11:54
    #40079296
J.Serge
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вызов REST из standalone приложения
"Забыл предупредить"

Нету Java8 и всех ее stream'ов и прочего. Есть Java 1.7
...
Рейтинг: 0 / 0
22.06.2021, 11:58
    #40079297
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вызов REST из standalone приложения
J.Serge
Надо вызывать REST-сервисы из standalone приложения. Какую библиотеку посоветуете, чтобы минимум зависимостей?

Можно использовать только возможности JDK. Многие Rest-сервисы возвращают результат настолько примитивным
образом что тебе не нужно даже парсить Json/XML. Просто проверь код возврата. Впрочем - эта часть задания нам неизвестна.
Ты должен не быть хитрецом а дать больше деталей.

Пример
Код: java
1.
2.
3.
URL url=new URL("http://jserge.rest.com/v1/customers/1234");  
URLConnection urlcon=url.openConnection();  
InputStream stream=urlcon.getInputStream();  
...
Рейтинг: 0 / 0
22.06.2021, 11:58
    #40079299
chpasha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вызов REST из standalone приложения
J.Serge
Нету Java8 и всех ее stream'ов и прочего. Есть Java 1.7

тут уже сам проверяй. согласно release notes последняя версия retrofit совместимая с 7 - 2.6.4 , все что новее 8+
...
Рейтинг: 0 / 0
22.06.2021, 12:17
    #40079308
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вызов REST из standalone приложения
mayton,
+1
Аффтар!
Ваш рест или чужой?
Он может возвращать просто число. Или json.
Ретрофит тебе даст из json сразу классы.
...
Рейтинг: 0 / 0
22.06.2021, 12:24
    #40079313
J.Serge
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вызов REST из standalone приложения
PetroNotC Sharp,

сервис чужой. Возвращает что-то сложнее просто кода
...
Рейтинг: 0 / 0
22.06.2021, 12:29
    #40079316
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вызов REST из standalone приложения
J.Serge
PetroNotC Sharp,

сервис чужой. Возвращает что-то сложнее просто кода

Даже при ретрофит вы описываете у себя класс который возвращается.
Чудес нет.
...
Рейтинг: 0 / 0
22.06.2021, 12:30
    #40079317
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вызов REST из standalone приложения
Блин ... клещами надо тянуть информацию. Короче бери мой кейс. И начинай кодить.

Не хватит возможностей - приходи.
...
Рейтинг: 0 / 0
22.06.2021, 12:31
    #40079318
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вызов REST из standalone приложения
J.Serge
PetroNotC Sharp,

сервис чужой. Возвращает что-то сложнее просто кода
json обычно.
Разбирайся.
...
Рейтинг: 0 / 0
22.06.2021, 12:52
    #40079323
lleming
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вызов REST из standalone приложения
PetroNotC Sharp
mayton,
+1
Аффтар!
Ваш рест или чужой?
Он может возвращать просто число. Или json.
Ретрофит тебе даст из json сразу классы.


еще ретрофит даст возможность визульно определять легко структура запроса. Ибо код имеет тенденцию обрастать фишкам потом нужно headers добавить. Правильно еще что то вычитать и т.д.
...
Рейтинг: 0 / 0
22.06.2021, 12:54
    #40079325
J.Serge
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вызов REST из standalone приложения
Этот retrofit под Windows работает?
...
Рейтинг: 0 / 0
22.06.2021, 12:57
    #40079326
lleming
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вызов REST из standalone приложения
J.Serge
Этот retrofit под Windows работает?


в в виндоуз какой то особенный http ?
...
Рейтинг: 0 / 0
22.06.2021, 13:02
    #40079329
lleming
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вызов REST из standalone приложения
есть подводные камни
retrofit с java версиями
не настраивать таймаут для отдельных запросов
если еще пара мутных сомнений (это по поводу срача разраоботки okhttp и раскола с httpclients) по поводу качества и поддержки

apache httpclient комбайн найдентся все, есть много на стакоферфлоу подсмотреть если что непонятно непонятно.

вообщем как там с пулами соединений, http2, http3 and so on (это если в долгосрочном плане)

если стоит вопрос чисто здесь и сейчас просто один запрос дернуть то смело бери как майтон подсказал
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Вызов REST из standalone приложения / 16 сообщений из 16, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]