parametros - ¿Cómo pasar el valor nulo en el servicio web RESTful para un método GET?
pasar parametros url web service (3)
La coincidencia predeterminada de una variable es [^/]+?
(al menos un personaje) puede establecer manualmente la coincidencia en [^/]*?
y también debe coincidir con cadenas vacías.
Simplemente agregue el formato a la variable userid:
@Path("/getProfile/{memberno}/{userid: [^/]*?}/{channelid}")
Actualmente tengo un servicio web RESTFul expuesto con CXF . El método se ve así.
@GET
@Path("/getProfile/{memberno}/{userid}/{channelid}")
@Consumes("application/xml")
public MaintainCustomerProductResponse getUserDetails(
@PathParam("memberno") String membernumber,
@PathParam("userid") String userid,
@PathParam("channelid") String channelid){
//DO Some Logic here.
}
Se puede acceder a esto a través de la siguiente URL y al enviar datos válidos recibo una respuesta.
http://server.com:8080/UserService/getProfile/{memberno}/{userid}/{channelid}
Pregunta: ¿Cómo puedo pasar el valor nulo para userid
de userid
?
Si simplemente ignoro el {userId}
la solicitud no está llegando al servicio web del lado del servidor.
Ejemplo
http://server.com:8080/UserService/getProfile/1001//1
Nota: Estoy usando SOAPUi
para Testing y, sin dar el valor de userId
, veo la siguiente respuesta en SOAPUI
y Request no llega al servidor.
Respuesta de SOAPUI
<data contentType="null" contentLength="0"><![CDATA[]]></data>
Lo resolví con un Work Around. Creé otro método que toma solo dos parámetros. Ahora, según el URL de la solicitud, se llama un método diferente
Cambie @Path("/getProfile/{memberno}/{userid}/{channelid}")
@Path("/getProfile/{memberno}/{userid = default}/{channelid}")
para que acepte null valores a la identificación del usuario. Puede usar plantillas URI para especificar valores predeterminados para parámetros opcionales. Consulte