Repaso
English

¿Qué anotación lee un cuerpo JSON de la petición en un objeto Java?

Opciones

  1. @PathVariable
  2. @RequestParam
  3. @RequestBody (Opción correcta)
  4. @ResponseBody

Respuesta

@RequestBody

Por qué

@RequestBody le dice a Spring que lea el cuerpo HTTP (normalmente JSON) y lo convierta en el parámetro Java con Jackson.

@RequestParam lee los parámetros de query (/search?name=ana), @PathVariable lee partes de la ruta.

@ResponseBody es la dirección contraria (de objeto a cuerpo); @RestController ya la aplica a todos los métodos.

@PostMapping
public ResponseEntity<User> create(@Valid @RequestBody CreateUserRequest req) {
    User created = userService.create(req);
    return ResponseEntity.status(HttpStatus.CREATED).body(created);   // 201
}

Recuerda

Cuerpo = @RequestBody. Query = @RequestParam. Ruta = @PathVariable.

Términos clave

Practica esta pregunta en Repaso