Я хотел бы иметь несколько функций для одного и того же пути GET.
Также я хотел бы, чтобы мой веб-сервис "находил" эти функции тогда и только тогда, когда параметры запроса соответствуют параметрам в строке URL.
Например:
У меня есть Path("/myGET")
И для этого пути я хотел бы иметь 2 функции:
@GET @Produces(MediaType.APPLICATION_JSON) @TypeHint(TagSets.class) public Response getTagSets(@QueryParam("entityId") Integer entityId) { ... }
И
@GET @Produces(MediaType.APPLICATION_JSON) @TypeHint(TagSets.class) public Response getTagSets(){ ... }
Сейчас я получаю сообщение об ошибке:
SEVERE: Следующие ошибки и предупреждения были обнаружены в классах ресурсов и/или поставщиков: SEVERE: конфликт типа медиа. Методы ресурсов public javax.ws.rs.core.Response <... > . GetTagSets (java.lang.Integer) и public javax.ws.rs.core.Response <... > . GetTagSets (java.lang. Integer, java.lang.Integer) может создавать один и тот же тип носителя SEVERE: конфликт типа медиа. Методы ресурсов public javax.ws.rs.core.Response <... > . GetTagSets() и public javax.ws.rs.core.Response <... > . GetTagSets (java.lang.Integer, java. lang.Integer) может создавать один и тот же тип носителя
Итак, сначала: Есть ли способ достичь того, что я хочу здесь сделать.
второй:
Если это доступно, существует ли способ, по которому будет найден путь, если и только если параметры запроса соответствуют именно тому, что запрашивается в функции? например, если тот же путь будет вызываться с помощью @QueryParam("differentParam")
, он не достигнет какой-либо из двух функций.
В-третьих: Если нет способа сделать это с Джерси, есть ли способ сделать это с любой другой работой рамы?
ВАЖНО: Поскольку люди, которые отвечают на вопрос, думают, что я ищу работу, а не решение. сегодня я использую 1 функцию и проверяю параметры и ссылаюсь на то, что мне нужно от этого (это то, что я использовал до того, как я разместил вопрос). Но то, что я ищу, возможно, использует силу фреймворков, чтобы спасти меня.
Спасибо.