Клиенты REST для Java?

227
задан dave 16 April 2019 в 16:25
поделиться

5 ответов

Можно также проверить Restlet, который имеет полные клиентские возможности, больше REST ориентировало это библиотеки низшего уровня, такие как HttpURLConnection или Apache Клиент HTTP (который мы можем усилить как коннекторы).

С наилучшими пожеланиями, Jerome Louvel

10
ответ дан Jerome Louvel 23 November 2019 в 03:51
поделиться

Как я упомянул в этот поток , я склонен использовать Джерси , который реализует JAX-RS и идет с хорошим клиентом REST. Хорошая вещь состоит в том при реализации УСПОКОИТЕЛЬНЫХ ресурсов с помощью JAX-RS тогда, клиент Джерси может снова использовать поставщиков объекта таких что касается JAXB/XML/JSON/Atom и т.д - таким образом, можно снова использовать те же объекты на стороне сервера, как Вы используете на клиентском модульном тесте.

, Например вот случай модульного теста от проект Camel Apache, который ищет, полезные нагрузки XML от УСПОКОИТЕЛЬНОГО ресурса (использующий JAXB возражают Конечным точкам). Ресурс (uri), метод определяется в этот базовый класс , который просто использует клиентский API Джерси.

, например,

    clientConfig = new DefaultClientConfig();
    client = Client.create(clientConfig);

    resource = client.resource("http://localhost:8080");
    // lets get the XML as a String
    String text = resource("foo").accept("application/xml").get(String.class);        

BTW я надеюсь, что будущая версия JAX-RS добавляет хороший клиентский API вроде того на Джерси

71
ответ дан Community 23 November 2019 в 03:51
поделиться

Я использую Apache HTTPClient для обработки всей стороны HTTP вещей.

я пишу синтаксические анализаторы SAX XML для содержания XML, которое анализирует XML в Вашу объектную модель. Я полагаю, что Axis2 также представляет XML-> Образцовые методы (Ось 1 скрыла эту часть, раздражающе). Генераторы XML тривиально просты.

Это не занимает много времени кодировать и довольно эффективно, по-моему.

5
ответ дан JeeBee 23 November 2019 в 03:51
поделиться

Вы можете попробовать Rapa . Сообщите нам свой отзыв о том же. И не стесняйтесь регистрировать проблемы или ожидаемые функции.

7
ответ дан 23 November 2019 в 03:51
поделиться

Вы можете использовать стандартные API Java SE:

private void updateCustomer(Customer customer) { 
    try { 
        URL url = new URL("http://www.example.com/customers"); 
        HttpURLConnection connection = (HttpURLConnection) url.openConnection(); 
        connection.setDoOutput(true); 
        connection.setInstanceFollowRedirects(false); 
        connection.setRequestMethod("PUT"); 
        connection.setRequestProperty("Content-Type", "application/xml"); 

        OutputStream os = connection.getOutputStream(); 
        jaxbContext.createMarshaller().marshal(customer, os); 
        os.flush(); 

        connection.getResponseCode(); 
        connection.disconnect(); 
    } catch(Exception e) { 
        throw new RuntimeException(e); 
    } 
} 

Или вы можете использовать клиентские API REST, предоставляемые реализациями JAX-RS, такими как Jersey. Эти API проще использовать, но они требуют дополнительных jar-файлов на пути к классу.

WebResource resource = client.resource("http://www.example.com/customers"); 
ClientResponse response = resource.type("application/xml");).put(ClientResponse.class, "<customer>...</customer."); 
System.out.println(response); 

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

63
ответ дан 23 November 2019 в 03:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: