Разница между RESTEasy и JAX-RS

Что такое Resteasy? в чем разница между RESTEasy и JAX-RS? В чем разница между @PathParam и @QueryParam?

Ответ 1

Согласно своей домашней странице RESTEasy

... полностью сертифицированная и портативная реализация спецификации JAX-RS.

Итак, JAX-RS - это спецификация того, как должна выглядеть библиотека для реализации API REST в Java, и RESTEasy является одной из реализаций этой спецификации.

Это фактически означает, что любая документация по JAX-RS должна также применять 1:1 к RESTEasy.

Ответ 2

Параметры запроса извлекаются из параметров запроса запроса URI и указываются с помощью аннотации javax.ws.rs.QueryParam в аргументах параметра метода.

Пример:

@Path("smooth")
@GET
public Response smooth(
    @DefaultValue("2") @QueryParam("step") int step,
    @QueryParam("minm") boolean hasMin,
    @QueryParam("test") String test
    ) { ... }

URL: http://domain:port/context/XXX/smooth?step=1&minm=true&test=value

URI параметры пути извлекаются из URI запроса, а имена параметров соответствуют именам переменных шаблона пути URI, указанным в аннотации уровня класса @Path. Параметры URI задаются с помощью аннотации javax.ws.rs.PathParam в аргументах параметра метода

Пример:

@Path("/{userName}")
public class MyResourceBean {
...
@GET
public String printUserName(@PathParam("userName") String userId) {
    ...
}
}


 URL: http://domain:port/context/XXX/naveen

Здесь naveen принимает как userName (параметр Path)

Ответ 3

JAX-RS представляет собой набор интерфейсов и классов без реальной реализации, которые относятся к пакетам javax.ws.rs.* (они являются частью Java SE 6, Oracle).

RESTEasy, а также, например, Jersey или Apache CXF, являются реализациями с открытым исходным кодом классов JAX-RS.

Во время компиляции вам нужен только JAX-RS. Во время выполнения вам нужна только одна из этих реализаций.

Ответ 4

Также обратите внимание, что JAX-RS является только спецификацией на стороне сервера, а RESTEasy расширил его, чтобы доставить JAX-RS на клиентскую сторону через RESTEasy JAX-RS Client Framework.

Информация о параметре, В чем разница между @PathParam и @QueryParam Здесь есть несколько замечательных замечаний относительно параметров, Когда использовать @QueryParam vs @PathParam - Gareth answer