@PostMapping
es una anotación específica de Spring utilizada para mapear solicitudes HTTP POST
en métodos de un controlador. Esta anotación simplifica la configuración de rutas y es útil para operaciones que implican la creación o el envío de datos desde el cliente al servidor. A diferencia de @GetMapping
, que se usa para recuperar información, @PostMapping
suele utilizarse cuando se envían datos para ser procesados, como por ejemplo el envío de formularios, la creación de registros en bases de datos, o para recibir datos en formato JSON.
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class MiControlador {
// Endpoint para procesar un formulario simple
@PostMapping("/enviarMensaje")
public String enviarMensaje(@RequestParam("mensaje") String mensaje) {
return "Mensaje recibido: " + mensaje;
}
// Endpoint para recibir un objeto JSON y procesarlo
@PostMapping("/crearUsuario")
public String crearUsuario(@RequestBody Usuario nuevoUsuario) {
return "Usuario creado: " + nuevoUsuario.getNombre();
}
}
// Clase Usuario para el ejemplo de recepción de JSON
class Usuario {
private String nombre;
private int edad;
// Getters y setters
public String getNombre() {
return nombre;
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
public int getEdad() {
return edad;
}
public void setEdad(int edad) {
this.edad = edad;
}
}
En este ejemplo:
@PostMapping("/enviarMensaje")
define un endpoint que recibe un parámetro de consulta mensaje
y lo devuelve en la respuesta.
@PostMapping("/crearUsuario")
maneja una solicitud POST
que acepta un objeto JSON (Usuario
) en el cuerpo de la solicitud, lo convierte en un objeto Java con la anotación @RequestBody
y devuelve un mensaje confirmando la creación del usuario.
Puedes consultar más detalles sobre el uso de @PostMapping
en la documentación oficial de Spring.
Jorge García
Fullstack developer