powered by simpleCommunicator - 2.0.30     © 2024 Programmizd 02
Map
Форумы / Java [игнор отключен] [закрыт для гостей] / Вызов REST из standalone приложения
16 сообщений из 16, страница 1 из 1
Вызов REST из standalone приложения
    #40079289
J.Serge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Надо вызывать REST-сервисы из standalone приложения. Какую библиотеку посоветуете, чтобы минимум зависимостей?
...
Рейтинг: 0 / 0
Вызов REST из standalone приложения
    #40079291
Garrick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
Вызов REST из standalone приложения
    #40079292
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я люблю такие, в которых меньше всего руками что-то делать нужно. для андроида я использую retrofit (зависимость только от okhttp), для явы оно вроде тоже годится. Есть еще feign - вдохновленная идеями retrofit, более продвинутая, но возможно продвинутость не особо требуется в вашем случае.
...
Рейтинг: 0 / 0
Вызов REST из standalone приложения
    #40079294
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
Вызов REST из standalone приложения
    #40079296
J.Serge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"Забыл предупредить"

Нету Java8 и всех ее stream'ов и прочего. Есть Java 1.7
...
Рейтинг: 0 / 0
Вызов REST из standalone приложения
    #40079297
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
Вызов REST из standalone приложения
    #40079299
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
J.Serge
Нету Java8 и всех ее stream'ов и прочего. Есть Java 1.7

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

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

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

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

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

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


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


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

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

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

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


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