miércoles, 7 de marzo de 2018

Desarrollo RESTful WebService APIs with JAX-RS Parte 3

Usando @MatrixParam, @HeaderParam, @Context

github https://github.com/jalbertomr/RESTfulWebServiceJAX-RSMaven.git

Matrix Param

@Path("/injectdemo")
@Consumes(MediaType.TEXT_PLAIN)
@Produces(MediaType.TEXT_PLAIN)
public class InjectDemoResource {

    @GET
    @Path("/annotations")
    public String getParamUsingAnnotations(@MatrixParam("param1") String value,
                                           @MatrixParam("param2") String value2,
                                           @MatrixParam("paramName") long cantidad) {
        return "Matrix Param1:" + value + " param2:" + value2 + " paramName:" + cantidad;
    }
}


Header Param

@GET
@Path("/annotations")
public String getParamUsingAnnotations(@MatrixParam("param1") String value,
                                       @HeaderParam("customHeaderParam") String headerValue,
                                       @HeaderParam("otroHeaderParm") String otroHeaderValue) {
    return "Matrix Param1:" + value + "customHeaderParam:" + headerValue + " otroHeaderParm:" + otroHeaderValue;
}




tambien existe el @FormParam que se refiere a los parámetros de una forma.

Obteniendo elementos del Contexto

@GET
@Path("/context")
public String getParamUsingContext(@Context UriInfo uriInfo, @Context HttpHeaders headers) {
    String path = uriInfo.getAbsolutePath().toString();
    String cookies = headers.getCookies().toString();
    return "Path: " + path + "Cookies: " + cookies;
}




Para crear esta cookie se uso temporalmente un hardcoded en MessageResource->addMessage()

@POSTpublic Response addMessage(Message message) {
    NewCookie newCookie = new NewCookie("miCookie","valor de MiCookie");
    Message newMessage = messageService.addMessage(message);
    return  Response.status(Response.Status.CREATED)
            .entity(newMessage)
            .cookie( newCookie)
            .build();
}


Para agregar Uri o location al header

@POSTpublic Response addMessage(Message message, @Context UriInfo uriInfo) throws URISyntaxException{
    Message newMessage = messageService.addMessage(message);
    String newMessageId = String.valueOf(newMessage.getId());
    URI uri = uriInfo.getAbsolutePathBuilder().path(newMessageId).build();
    return  Response.created(uri)
            .entity(newMessage)
            .build();
}


fintexto.

No hay comentarios:

Publicar un comentario