Nano Hash - криптовалюты, майнинг, программирование

Использование REST API с Java

У меня есть веб-приложение для управления, расположенное на удаленном сервере. Это приложение было написано с использованием стека MEAN, и у меня есть список всех маршрутов RESTful, необходимых для подключения к веб-приложению.

Я пишу клиентское приложение Java, которому необходимо отправлять и получать данные из этого приложения управления. Как подключить клиента к веб-приложению, если у меня есть IP-адрес сервера и маршруты REST?

Я предполагаю, что мне нужно предоставить URL-соединение с сервером и файл REST API, а затем просто вызвать функции маршрута, такие как PUT и GET.

23.05.2016

  • Вы правильно представляете: установите HTTP-соединение с интересующим вас URL-адресом и отправьте соответствующий запрос GET/POST. 23.05.2016
  • Предлагаю погуглить Java как вызывать REST API... 23.05.2016

Ответы:


1

В настоящее время существует множество библиотек для использования приложений REST на Java.

Стандарт

Клиентский API JAX-RS (javax.ws.rs.client< /a>), определенный в файле JSR 339 — это стандартный способ использования веб-служб REST на Java. Помимо прочего, эта спецификация реализована в Jersey и RESTEasy.

Клиенты на основе прокси-сервера JAX-RS для конкретных поставщиков

И Джерси, и RESTEasy предоставляют прокси-фреймворк.

Основная идея заключается в том, что вы можете прикрепить к интерфейсу стандартные аннотации JAX-RS, а затем реализуйте этот интерфейс с помощью класса ресурсов на стороне сервера, повторно используя тот же интерфейс на стороне клиента, динамически генерируя его реализацию с помощью java.lang.reflect.Proxy вызывает правильные низкоуровневые методы клиентского API.

Для получения дополнительной информации проверьте следующее:

Другие источники

Есть несколько других хороших вариантов, которые вы можете рассмотреть в качестве альтернативы клиентскому API JAX-RS:

23.05.2016
  • Определенно Netflix Feign в одном из лучших вариантов 25.05.2016

  • 2

    Я бы начал с чтения документации для Jersey, в частности Клиентская часть. Вы захотите ознакомиться с классом WebTarget и его вызовом (пример из документации):

    ClientConfig clientConfig = new ClientConfig();
    clientConfig.register(MyClientResponseFilter.class);
    clientConfig.register(new AnotherClientFilter());
    
    Client client = ClientBuilder.newClient(clientConfig);
    client.register(ThirdClientFilter.class);
    
    WebTarget webTarget = client.target("http://example.com/rest");
    webTarget.register(FilterForExampleCom.class);
    WebTarget resourceWebTarget = webTarget.path("resource");
    WebTarget helloworldWebTarget = resourceWebTarget.path("helloworld");
    WebTarget helloworldWebTargetWithQueryParam =
    helloworldWebTarget.queryParam("greeting", "Hi World!");
    
    Invocation.Builder invocationBuilder =
        helloworldWebTargetWithQueryParam.request(MediaType.TEXT_PLAIN_TYPE);
    invocationBuilder.header("some-header", "true");
    
    Response response = invocationBuilder.get();
    System.out.println(response.getStatus());
    System.out.println(response.readEntity(String.class));
    
    23.05.2016
    Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..