Какая реализация JAX-RS?

Я пытался выяснить, как использовать JAX-RS в течение некоторого времени. Я начал с самых основных понятий, а затем постепенно понял программирование в стиле аннотаций, значение @Path, @Get, @Post и т.д.

Насколько я понимаю, что касается многих мест, JAX-RS - это структура, которая фокусируется на применении аннотаций Java к простым объектам Java (Страница 27, Билл Берк, RESTful Java).

Затем я смутился после этого. Если JAX-RS сам по себе является структурой, которая определяет API-интерфейсы, связанные с аннотациями, чтобы внедрить веб-службу RESTful, то что означает "реализация JAX-RS", например "Джерси" и "JBoos Resteasy". Другой слой поверх JAX-RS? Почему они нам нужны?

Может ли кто-нибудь дать мне некоторые сведения об этом? Большое спасибо!!!

Ответы

Ответ 1

JAX-RS - это спецификация для веб-служб RESTful с Java. Существует эталонная реализация, которая включена в Java EE, но поскольку она является спецификацией, для реализации спецификации могут быть написаны другие структуры, включая Jersey, Resteasy и другие.

Ответ 2

JAX-RS - это стандарт, определенный в Запросе спецификации 311 Java (JSR-311), а Jersey/RESTEasy - это его реализация.

Реализация означает, что спецификация говорит: "Если вы ставите @GET("/foo") на метод (bar()), вы можете получить доступ к данным X" - теперь на сервере приложений кому-то нужно зайти и прочитать ваш развернутый код, проанализируйте байтовый код с помощью аннотации @GET, а затем, если пользователь действительно просматривает, например, http://localhost/foo получить этот веб-запрос, чтобы достичь bar() и перевести возвращаемое значение bar() в http-ответ (например, в XML или JSON представление).

Таким образом, спецификация с именем "JAX-RS" предоставляет только синтаксис и семантику, например. @GET, но работа по разбору запросов, вызов правильных методов, сортировка значений результата и т.д. Должна выполняться пакетом, реализующим Spec.

Работа над версией 2.0 стандарта началась как JRS-339.

См. также http://en.wikipedia.org/wiki/Jax-rs