Кто-нибудь знает реализацию прокси-сервера клиента в Джерси, например, Apache CXF для REST? - PullRequest
4 голосов
/ 24 октября 2011

проект Apache CXF предлагает реализацию клиента на основе прокси для служб REST. Это выглядит так:

Resource resource = JAXRSClientFactory.create( baseAddress, Resource.class )

Кто-нибудь знает подобную реализацию для Джерси?

Я заметил подход, использующий аннотации @HyperMediaController, но я хочу придерживаться аннотаций по умолчанию JSR-311, таких как @Path и @Get ...

У кого-нибудь есть идея?

Ответы [ 3 ]

4 голосов
/ 11 января 2016

Реализация прокси существует, но, к сожалению, она даже не упомянута в Документации API Jersey Client (ни в Руководстве пользователя Jersey ) начиная с версии 2.22.1.

Я обнаружил JavaDoc для WebResourceFactory , еще лучше пакет JavaDoc .Вот фрагмент из JavaDoc об использовании WebResourceFactory:

Client client = ClientBuilder.newClient();
WebTarget target = client.target("http://localhost:8080/");
MyResourceIfc resource = WebResourceFactory.newResource(MyResourceIfc.class, target);

В Maven вам потребуется:

    <dependency>
        <groupId>org.glassfish.jersey.ext</groupId>
        <artifactId>jersey-proxy-client</artifactId>
        <version>2.22.1</version>
    </dependency>

в дополнение к

    <dependency>
        <groupId>org.glassfish.jersey.core</groupId>
        <artifactId>jersey-client</artifactId>
        <version>2.22.1</version>
    </dependency>
1 голос
/ 24 марта 2016

Я обнаружил, что WebResourceFactory не поддерживает универсальные типы, и его исходный код действительно трудно понять. Итак, мы создали https://github.com/adaptris/jaxrs-client-proxy, и в настоящее время мы разрабатываем его.

Чтобы использовать его, вам нужно создать ресурс:

ResourceBuilder builder = new ResourceBuilder();
resource = builder.
    url("https://host/api").
    build(Resource.class);
client = resource.get();

Затем вы можете позвонить client - это прокси вашего интерфейса аннотации jax-rs, описанного (Resource.class). Вы должны закрыть ресурс после прекращения его использования, как это рекомендовано клиентским API jax-rs.

resource.close()

Подробнее о github projet page.

0 голосов
/ 28 октября 2011

Я создал собственную реализацию. См. производную от utils-apl вики-страницу поэтому.

...