Jersey Client / JAX-RS y opcional (no predeterminado) @QueryParam (lado del cliente)
Tengo una API RESTful cuyo documento dice que un determinado parámetro de consulta es opcional y no proporciona un argumento predeterminado. Entonces, puedo suministrar el valor o no enviarlo en la solicitud GET como parámetro.
Ejemplo:
queryA
es requeridoqueryB
esOpcional (puede enviarGET
sin ello)Esto debería funcionar:
http://www.example.com/service/endpoint?queryA=foo&queryB=bar
Esto también debería funcionar:
http://www.example.com/service/endpoint?queryA=foo
¿Cómo hago una interfaz de cliente paraJersey-Proxy que puede hacer esto ??No tengo el código del lado del servidor para interactuar con lo que estoy usandoorg.glassfish.jersey.client.proxy.WebResourceFactory
a través de Jersey-Proxy para generar el cliente para interactuar con la API del servidor.
Interfaz de muestra:
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);
}
Sé que puedo hacer otro método:
@Path("/endpoint")
@GET
public Response getEndpoint(
@QueryParam("queryA") String first);
Pero, ¿qué sucede cuando tienes múltiples campos opcionales? ¡No quiero hacer todas las mutaciones posibles de ellos!