Я работаю, чтобы удовлетворить REST URL из трех типов:Дополнительных пары не работают в джерси с использованием регулярных выражений
url/detail/3
(целое только)url/detail/hello
(String только)url/detail/3/1d
Для URL 1 и 3 я использую method1
и для URL 2 method2
.
Проблема 1: Все запросы типа 1 и 2 соответствуют только методу 2. Хотя я указал целочисленный шаблон в методе 1 для запросов, имеющих целые числа.
Задача 2: Чтобы использовать дополнительные параметры (как в 3) Я использую method1, потому что трикотаж не обеспечивает возможность для дополнительных типов param.But Адреса url/detail/3/1d
никогда не совпавших, как указан в методе 1.
Пожалуйста, помогите мне понять, что я делаю неправильно, поскольку я новичок в джерси.
@GET
@Path("/detail/{id: \\d+}/{time-period:(/time-period/[^/]+?)?}")
@Produces({ MediaType.APPLICATION_JSON })
@Consumes(MediaType.APPLICATION_JSON)
public JResponse method1(
@Context HttpHeaders headers,
@PathParam("id") String id,
@PathParam("time-period") String timePeriod) {
if(timePeriod == null || timePeriod.equals(""))
{
//code
}
else
//code
}
@GET
@Path("/detail/{name}")
@Produces({ MediaType.APPLICATION_JSON })
@Consumes(MediaType.APPLICATION_JSON)
public JResponse method2(
@Context HttpHeaders headers, @PathParam("name") String name) {
//code
}