opcionales - parametros predeterminados java
Jersey(JAX-RS) cómo mapear ruta con múltiples parámetros opcionales (2)
Deberías intentar con QueryParams :
@GET
@Path("/func1")
public Double func1(@QueryParam("p1") Integer p1,
@QueryParam("p2") Integer p2,
@QueryParam("p3") Integer p3) {
...
}
que se solicitaría como:
localhost/func1?p1=1&p2=2&p3=3
Aquí todos los parámetros son opcionales. Dentro de la ruta, esto no es posible. El servidor no pudo distinguir, por ejemplo:
func1/p1/p3
y func1/p2/p3
Estos son algunos ejemplos del uso de QueryParam : http://www.mkyong.com/webservices/jax-rs/jax-rs-queryparam-example/ .
Necesito mapear ruta con múltiples argumentos opcionales a mi punto final
ruta se verá como localhost/func1/1/2/3
o localhost/func1/1
o localhost/func1/1/2
y esta ruta debe coincidir correctamente con
public Double func1(int p1, int p2, int p3){ ... }
¿Qué debería usar en mis anotaciones?
Es una tarea de prueba jugar con Jersey para encontrar una forma de usar múltiples params opcionales, no para aprender el diseño de REST.
Para resolver esto, necesitas hacer que tus parámetros sean opcionales, pero también /
firmar opcional
En el resultado final se verá similar a esto:
@Path("func1/{first: ((/+|-)?/d+)?}{n:/?}{second:((/+|-)?/d+)?}{p:/?}{third:((/+|-)?/d+)?}")
public String func1(@PathParam("first") int first, @PathParam("second") int second, @PathParam("third") int third) {
...
}