Что такое Resteasy? в чем разница между RESTEasy и JAX-RS?
В чем разница между @PathParam
и @QueryParam
?
Разница между RESTEasy и JAX-RS
Ответ 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