JAX-RS идеально подходит для реализации REST. Что Вы используете для вызова сервисов REST в Java? [закрытый]

Щелкните правой кнопкой мыши файл .feature и выберите «Запустить пользовательский инструмент». Это перезапустит SpecFlowSingleFileGenerator, который генерирует выделенный код в рамках тестирования по вашему выбору.

7
задан 3 revs, 3 users 100% 29 November 2009 в 17:37
поделиться

5 ответов

В комментарии вы писали, что «надеялись на что-то более высокий уровень», чем HttpClient. Похоже, что Restlet подойдет идеально. Он предоставляет высокоуровневый API для реализации и использования веб-приложений RESTful с адаптерами plug-and-play для низкоуровневых реализаций.

Например, для POST веб-формы на ресурс с помощью Restlet 1.1:

Client client = new Client(Protocol.HTTP);

Form form = new Form();
form.add("foo", "bar");
form.add("abc", "123");

Response response = client.post("http://host/path/to/resource", form.getWebRepresentation())

if (response.getStatus().isError()) {
    // deal with the error
    return;
}

if (response.isEntityAvailable()) {
    System.out.println(response.getEntity().getText());
}

Если вам нужно задать дополнительные параметры для запроса, вы можете использовать объект запроса:

Form form = new Form();
form.add("foo", "bar");
form.add("abc", "123");

Request request = new Request(Method.POST, "http://host/path/to/resource");

request.setEntity(form.getWebRepresentation());

request.setReferrerRef("http://host/path/to/referrer");

Response response = client.handle(request);

HTH!

7
ответ дан 6 December 2019 в 10:02
поделиться

JAX-RS (JSR311) не определяет клиентский API, но в большинстве реализаций JAX-RS он есть, например Jersey , RESTeasy или Apache CXF . Фреймворк Restlet также имеет поддержку клиентов , а также отдельное расширение HTTP-клиента .

Поскольку это специализированные библиотеки / фреймворки для REST, я бы посоветовал вам изучить их.

9
ответ дан 6 December 2019 в 10:02
поделиться

Предлагаю вам взглянуть на проект WADL . WADL для REST - это то же самое, что WSDL для SOAP.

Сначала вам нужно определить интерфейс REST с помощью WADL. Затем вы можете запустить на нем инструмент wadl2java, чтобы сгенерировать клиентские заглушки для вызовов REST.

Если у вас есть WADL для веб-сервиса, вы можете реализовать инструменты, которые также делают с ним другие вещи, например, генерируют заглушки на стороне сервера, генерируют документация и т. д.

2
ответ дан 6 December 2019 в 10:02
поделиться

HttpClient в основном из apache (см. http://hc.apache.org/httpcomponents-client-ga/ ).

1
ответ дан 6 December 2019 в 10:02
поделиться

Как сказали Гэндальф и Даррел Миллер, HttpClient.

Вам не нужно создавать XML из параметров HTTP. XML должен быть только вашим интерфейсом между двумя отдельными системами. Использование HttpClient помещает вас в Java со значениями String в вашем распоряжении, оттуда возвращаться в XML нет необходимости.

Если вы на этом этапе возвращаетесь к XML для отправки в другую систему, вам следует подумать о перемещении значений из параметров HTTP обратно в логику вашего домена / приложения, прежде чем связываться с другой системой. Это необходимо для правильного разделения логики приложения и межсистемной связи.

0
ответ дан 6 December 2019 в 10:02
поделиться
Другие вопросы по тегам:

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