Repaso
English
Spring, JPA y Java WebIntermedioSPR-34

¿Cuál es la diferencia entre @RequestParam y @PathVariable?

Opciones

  1. Son idénticas; ambas leen el valor de la URL
  2. @PathVariable viene de la ruta; @RequestParam, de la query (Opción correcta)
  3. @RequestParam solo sirve para leer cuerpos JSON
  4. @PathVariable solo se puede usar en peticiones POST

Respuesta

@PathVariable toma un valor de la ruta de la URL (/users/42); @RequestParam lo toma de la query string (/users?role=admin)

Por qué

Las variables de ruta identifican un recurso concreto: /users/{id}.

Los parámetros de query filtran, ordenan o paginan una colección: /users?role=admin&page=2.

Ambos se enlazan a parámetros del método. @RequestParam puede ser opcional con un valor por defecto: @RequestParam(defaultValue = "0") int page.

Recuerda

Ruta = qué recurso. Query = cómo filtrarlo u ordenarlo.

Términos clave

Practica esta pregunta en Repaso