Я хотел бы иметь несколько функций для одного и того же пути GET.Функции перегрузки с различными @QueryParams
Как бы я хотел, чтобы мой веб-сервис «находил» эти функции тогда и только тогда, когда параметры запроса соответствуют параметрам в строке 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: The following errors and warnings have been detected with resource and/or provider classes: SEVERE: Producing media type conflict. The resource methods public javax.ws.rs.core.Response<...>.getTagSets(java.lang.Integer) and public javax.ws.rs.core.Response<...>.getTagSets(java.lang.Integer,java.lang.Integer) can produce the same media type SEVERE: Producing media type conflict. The resource methods public javax.ws.rs.core.Response<...>.getTagSets() and public javax.ws.rs.core.Response <...>.getTagSets(java.lang.Integer,java.lang.Integer) can produce the same media type
Так первый: Есть ли способ добиться того, что я хочу сделать здесь ..
второго: Если это доступно, есть ли способ, что путь будет найден, если и только если параметры запроса соответствуют именно тому, что запрашивается в функции? например, если тот же путь будет вызываться с @QueryParam("differentParam")
, он не достигнет какой-либо из двух функций.
В-третьих: Если нет способа сделать это с Джерси, есть ли способ сделать это с любой другой работой рамы ?.
ВАЖНО: Как люди, которые отвечают на вопрос, думают, что я ищу работу, а не решение. сегодня я использую 1 функцию и проверяю параметры и ссылаюсь на то, что мне нужно от этого (это то, что я использовал до того, как я разместил вопрос). Но то, что я ищу, возможно, использует силу каркасов, чтобы спасти меня.
Спасибо.
Я думаю, вам, придется сделать это в одном методе и программно решить, какой другой способ вызова на основе наличия параметров запроса , Я не думаю, что это можно решить исключительно на основе параметров запроса. –
Все ответы относятся к моей текущей реализации. Поэтому я понимаю, что вы не можете делать то, что я ищу с майкой ... знаете ли вы, есть ли способ сделать это с весной? – Gleeb
Вы попросили один метод, имеющий разные параметры запроса, и мой ответ использует Джерси. Что именно вы ищете? Уточните свой вопрос. – anvarik