В двух словах: вы используете джерси-сервер разоблачить API-интерфейсы REST, как в этом примере:
@Path("/hello")
class RESTDispatcher {
@GET
@Path("/world")
public String helloWorld() {
return "Hello world!"
}
}
используется джерси-клиент потреблять REST API-интерфейсы
public static String callRestAPI(String[] args) {
Invocation.Builder builder = ClientBuilder
.newClient()
.target("http://localhost/hello/world");
Response response = builder.method("GET");
String result = response.readEntity(String.class);
return result;
//will return "Hello world!" with our previous example deployed on localhost
}
И джерси-гризли просто использовать майку с сервером гризли.
UPDATE
Я имел в виду, что нам нужно джерси-клиент каждый раз, когда нам нужно вызвать REST API разоблачена кем-то.
Мой пример использования jersey-client предполагает, что первый пример развернут на вашем локальном хосте. См аннотаций первого примера, @Path класса и @Path результатов методы в пути /привет/мир, который должен вызываться с HTTP GET запрос (см @GET аннотацию).
Так мы создаем REST клиент с этой целью
Invocation.Builder builder = ClientBuilder
.newClient()
.target("http://localhost/hello/world");
мы называем эту цель HTTP GET запрос
Response response = builder.method("GET");
Тогда мы знаем (из подписи метода HelloWorld), что этот ответ API содержит объект который может быть десериализован в экземпляр String. Таким образом, мы читаем его в «результат» переменной
String result = response.readEntity(String.class);
Вы должны обеспечить целевой класс десериализации в качестве параметра метода readEntity ответа.
Кроме того, REST API нередко возвращает только строку. Скорее, они возвращают JSON или XML. В этом случае вы можете использовать JAXB для чтения сущности, Джерси прекрасно работает с ним. Проверьте this part of documentation for XML support и this for JSON.
Благодарим вас за ответ ..... Было бы полезно, если бы вы могли уточнить, что jersey-клиент «потребляет» API для отдыха. – RamSri
Добро пожаловать. См. Обновление. – mkrakhin