variable requestparam pathvariable pathparam example entre diferencia and spring-mvc jax-rs restful-url path-parameter

spring mvc - requestparam - ¿Cuál es la diferencia entre @PathParam y @PathVariable



request param url example (5)

Que yo sepa, ambos sirven al mismo propósito. Excepto el hecho de que @PathVariable es de Spring MVC y @PathParam es de JAX-RS. ¿Alguna idea sobre esto?


@PathVariable y @PathParam se utilizan para acceder a los parámetros desde la plantilla URI

Diferencias

  • Como mencionó, @PathVariable es de Spring y @PathParam es de JAX-RS .
  • @PathParam puede usar solo con REST, donde se usa @PathVariable en Spring para que funcione en MVC y REST.

@PathParam es una anotación de parámetros que le permite asignar los fragmentos de la ruta URI variable a su llamada de método.

@PathVariable es para obtener un marcador de posición de la URI (Spring lo llama una Plantilla URI)


@PathParam es una anotación de parámetros que le permite asignar los fragmentos de la ruta URI variable a su llamada de método.

@Path("/library") public class Library { @GET @Path("/book/{isbn}") public String getBook(@PathParam("isbn") String id) { // search my database and get a string representation and return it } }

para más detalles: JBoss DOCS

En Spring MVC puede usar la anotación @PathVariable en un argumento de método para vincularla al valor de una variable de plantilla URI para obtener más detalles: SPRING DOCS


@PathVariable

@PathVariable es la anotación, que se utiliza en el URI para la solicitud entrante. Veamos abajo

http://localhost:8080/restcalls/101?id=10&name=xyz

@RequestParam

@RequestParam anotación utilizada para acceder a los valores de los parámetros de consulta desde la solicitud.

public String getRestCalls( @RequestParam(value="id", required=true) int id, @RequestParam(value="name", required=true) String name){...}

Nota

lo que sea que estemos solicitando con llamada de descanso, es decir, @PathVariable

lo que sea que tengamos acceso para escribir consultas, es decir, @RequestParam


PathParam:

Para asignar valores de parámetros URI a argumentos de método. En primavera, es @RequestParam .

P.ej.,

http://localhost:8080/books?isbn=1234 @GetMapping("/books/") public Book getBookDetails(@RequestParam("isbn") String isbn) {

PathVariable:

Para asignar valores de marcador de posición URI a argumentos de método.

P.ej.,

http://localhost:8080/books/1234 @GetMapping("/books/{isbn}") public Book getBook(@PathVariable("isbn") String isbn) {