Я пытался сделать приложение-Джерси, который принимает следующую структуру с пути:Перекрытие @Path в Джерси
Пример 1 (Http: // пропущенный из-за ограничений StackOverflow) example.com/source/{источник-ID}/ example.com/source/
С кодом (обработка ошибок и ненужного кода опущены):
С кодом (суммировать):
@Path("/source/")
public class SourceREST {
...
@GET
public Response getSource() {
return Response.ok("Sources List (no field)").build();
}
@GET
@Path("/{source-id}")
public Response getSource(@PathParam("source-id") String sourceID) {
return Response.ok("Source: " + sourceID).build();
}
}
Он отлично работает.
Пример 2: example.com/data/{source-id}/{info-id}/ example.com/data/{source-id}/
С кодом (обработка ошибок и ненужный код опущены):
@Path("/data/")
public class DataREST {
...
@GET
@Path("/{source-id}")
public Response getContext(@PathParam("source-id") String sourceID) {
return Response.ok("Source: " + sourceID + " Last ContextInfo").build();
}
@GET
@Path("/{source-id}/{data-id}")
public Response getContext(@PathParam("source-id") String sourceID,
@PathParam("data-id") String dataID) {
return Response.ok("Source: " + sourceID + " Data: " + dataID).build();
}
}
в примере 2, я могу получить доступ к URL, как example.com/data/111/222/ хорошо, но при попытке получить hexample.com/data/111/ дает мне 405 ошибки Код (метод не разрешен). Я также попытался создать целый метод, который проверяет, является ли {data-id} пустым или пустым, и в этом случае обрабатывает петицию как в первом методе, но не работает.
Любая идея?
Спасибо!
Вы пробовали example.com/data/111 (без косой черты)? – Jonas
Спасибо за вопрос, именно то, что я искал – Genry