query pass parameter jax how example consume java web-services rest jersey path-parameter

java - pass - jax rs example



Aceptar el valor de coma separado en REST Webservice (2)

No estoy seguro de lo que está tratando de lograr con su servicio, sin embargo, puede ser mejor usar parámetros de consulta para obtener múltiples valores para un solo parámetro. Considera la siguiente URL.

http://localhost:8080/rest/todos?name=name1&name=name2&name=name3

Y aquí está el fragmento de código para el servicio REST.

@GET @Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON }) @Path("/todos") public Response get(@QueryParam("name") List<String> names) { // do whatever you need to do with the names return Response.ok().build(); }

Estoy tratando de recibir una lista de cadenas como valores separados por comas en el URI de REST (ejemplo:

http://localhost:8080/com.vogella.jersey.first/rest/todo/test/1/abc,test

, donde abc y test son los valores separados por coma pasados).

Actualmente obtengo este valor como una cadena y luego lo divido para obtener los valores individuales. Código actual:

@Path("/todo") public class TodoResource { // This method is called if XMLis request @GET @Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON }) @Path("/test/{id: .*}/{name: .*}") public Todo getXML(@PathParam("id") String id, @PathParam("name") String name) { Todo todo = new Todo(); todo.setSummary("This is my first todo, id received is : " + id + "name is : " + Arrays.asList(name.split("//s*,//s*"))); todo.setDescription("This is my first todo"); TodoTest todoTest = new TodoTest(); todoTest.setDescription("abc"); todoTest.setSummary("xyz"); todo.setTodoTest(todoTest); return todo; } }

¿Hay algún método mejor para lograr lo mismo?


Si no sabes cuántos valores separados por coma obtendrás, entonces la división que haces es tan lejos como he podido encontrar la mejor manera de hacerlo. Si sabes que siempre tendrás 3 valores separados por coma, entonces puedes obtener esos 3 directamente. (por ejemplo, si tiene lat, long o x, y, z, puede obtenerlo con 3 pathvariables. (consulte uno de los enlaces de que se detallan a continuación)

hay una serie de cosas que puede hacer con las variables de la matriz, pero que requieren; y pares clave / valor que no es lo que estás usando.

Cosas que encontré (aparte de las cosas de la matriz) Cómo pasar parámetros separados por comas en una url para el método de obtención del servicio de descanso ¿Cómo puedo mapear parámetros de ruta separados por punto y coma en Jersey?