У меня есть RESTful API, в документе говорится, что определенный параметр запроса является необязательным и не содержит аргумент по умолчанию. Таким образом, я могу либо указать значение, либо отправить его в запросе GET в качестве параметра.
Пример:
-
queryA
требуется -
queryB
необязательный (можно отправитьGET
без него)
Это должно работать:
http://www.example.com/service/endpoint?queryA=foo&queryB=bar
Это также должно работать:
http://www.example.com/service/endpoint?queryA=foo
Как создать клиентский интерфейс для Jersey-Proxy, который может это сделать? У меня нет серверного кода для взаимодействия, поэтому я использую org.glassfish.jersey.client.proxy.WebResourceFactory
через Jersey-Proxy, чтобы создать клиент для взаимодействия с API-интерфейсом сервера.
Пример интерфейса:
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);
}
Я знаю, что могу сделать другой метод:
@Path("/endpoint")
@GET
public Response getEndpoint(
@QueryParam("queryA") String first);
Но что происходит, когда у вас есть несколько необязательных полей? Я не хочу делать из них все возможные мутации!