2014-01-19 4 views
4

Я пытаюсь создать базовое приложение RESTful с использованием Maven, Apache Tomcat 7.0, Eclipse IDE. Я столкнулся с использованием зависимостей maven, таких как jersey-server, jersey-client, jersey-grizzly и т. Д. В некоторых примерах кода, доступных в google.Назначение джерси-сервера, джерси-клиента, джерси-гризли в приложении RESTful

Я хотел знать цель этих зависимостей, т.е. почему мы добавляем их, что он делает, как они работают?

Я указал несколько jersey jersey, но не могу получить четкое изображение. Просьба дать простое объяснение тому же.

Заранее спасибо

ответ

4

В двух словах: вы используете джерси-сервер разоблачить 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.

+0

Благодарим вас за ответ ..... Было бы полезно, если бы вы могли уточнить, что jersey-клиент «потребляет» API для отдыха. – RamSri

+0

Добро пожаловать. См. Обновление. – mkrakhin

Смежные вопросы