Два основных способа обработки параметра в REST - это разбор пути и извлечение части запроса.
Параметры пути
Они обрабатывают этот случай - /foo/{fooID}
- где {fooID}
- это шаблон, который будет заменен требуемым параметром:
@GET
@Produces("text/plain")
@Path("/foo/{fooID}")
public String getFoo(@PathParam("fooID") String id) {
// ...
}
Это отлично подходит для случая, когда вы можете считать параметр описывающим ресурс.
Параметры запроса
Они обрабатывают этот случай - /?foo=ID
- точно так же, как если бы вы выполняли традиционную обработку форм:
@GET
@Produces("text/plain")
@Path("/")
public String getFoo(@QueryParam("foo") String id) {
// ...
}
Это отлично подходит для случая, когда вы считаете, что параметр описывает добавление к ресурсу, а не сам ресурс. Аннотация @FormParam
очень похожа, за исключением того, что она обрабатывает форму POST вместо параметров в стиле GET
Другие типы параметров
Существуют другие типы обработки параметров, поддерживаемые спецификацией JAX-RS (параметры матрицы, параметры заголовка, параметры cookie), которые работают примерно одинаково с программистом, но более редки или более специализированы в использовании. Разумным местом для начала изучения деталей является сам JAX-RS javadoc , поскольку он имеет полезные ссылки.