Jersey Client / JAX-RS e opcional (não padrão) @QueryParam (lado do cliente)
Eu tenho uma API RESTful cujo documento diz que um determinado parâmetro de consulta é opcional e não fornece um argumento padrão. Portanto, posso fornecer o valor ou não enviá-lo na solicitação GET como parâmetro.
Exemplo:
queryA
É necessárioqueryB
éopcional (pode enviarGET
sem ele)Isso deve funcionar:
http://www.example.com/service/endpoint?queryA=foo&queryB=bar
Isso também deve funcionar:
http://www.example.com/service/endpoint?queryA=foo
Como faço para criar uma interface de cliente paraJersey-Proxy que pode fazer isso ??Eu não tenho o código do servidor para interagir com isso eu estou usandoorg.glassfish.jersey.client.proxy.WebResourceFactory
via Jersey-Proxy para gerar o cliente para interagir com a API do servidor.
Interface de amostra:
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.QueryParam;
import javax.ws.rs.core.Response;
@Path("/service")
@Produces("application/json")
public interface ServiceInterface {
@Path("/endpoint")
@GET
public Response getEndpoint(
@QueryParam("queryA") String first,
@QueryParam("queryB") String second);
}
Eu sei que posso fazer outro método:
@Path("/endpoint")
@GET
public Response getEndpoint(
@QueryParam("queryA") String first);
Mas o que acontece quando você tem vários campos opcionais? Eu não quero fazer todas as mutações possíveis deles!