JAX-RS идеально подходит для реализации REST.Что вы используете для вызова служб REST в Java?[закрыто]
Вопрос
В идеале, я ищу что-то вроде JAX-RS (используя аннотации для описания служб, которые я хочу вызвать), но позволяющее вызывать службы REST, реализованные с использованием других технологий (не JAX-RS).Есть какие-нибудь предложения?
Решение
Вы написали в комментарии, что "надеялись на что-то более высокоуровневое", чем HttpClient.Это звучит как Рестлет было бы идеально.Он предоставляет высокоуровневый API для реализации и используя Веб-приложения RESTful с адаптерами plug-and-play для реализаций более низкого уровня.
Например, чтобы ОПУБЛИКОВАТЬ веб-форму на ресурсе с помощью 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);
ХТХ!
Другие советы
JAX-RS (JSR311) не определяет клиентский API, но в большинстве реализаций JAX-RS он есть, например Джерси, Спокойный или Apache CXF.Фреймворк Restlet также имеет служба поддержки клиентов а также отдельный Расширение HTTP-клиента.
Поскольку это специализированные библиотеки / фреймворки для REST, я бы посоветовал вам ознакомиться с ними.
Я предлагаю вам взглянуть на Проект WADL.ВАДЛ - это то, что нужно для ОТДЫХА WSDL это к МЫЛУ.
Сначала вам нужно определить интерфейс REST с помощью WADL.Затем вы можете запустить на нем инструмент wadl2java, чтобы сгенерировать заглушки клиента для остальных вызовов.
Как только у вас есть WADL для веб-сервиса, вы можете реализовать инструменты, которые также выполняют с ним другие действия, напримерсоздавайте заглушки на стороне сервера, создавайте документацию и т.д.
HttpClient от апача в основном (см HTTP: // Нс .apache.org / httpcomponents-клиент-га / ). р>
Как сказали Гэндальф и Даррел Миллер, HttpClient.
Вам не нужно создавать XML из параметров HTTP.XML должен быть вашим интерфейсом только между двумя отдельными системами.Использование HttpClient переводит вас на Java со строковыми значениями в вашем распоряжении, возвращаться оттуда в XML нет необходимости.
Если на данном этапе вы возвращаетесь к XML для отправки в другую систему, вам следует подумать о перемещении значений из параметров HTTP обратно в логику вашего домена / приложения, прежде чем связываться с другой системой.Это необходимо для обеспечения надлежащего отделения логики приложения от межсистемных коммуникаций.