Manejador de solicitudes PostMapping múltiple con diferentes parámetros
Revisé con el atributo “params” que podemos limitar la solicitud a un controlador específico en caso de que haya varios definidos para la misma URI, ¿cómo podemos lograr lo mismo en caso de PostMapping?
@PostMapping(value=”newUser”)
public String addNewUser(@RequestBody User user) {}
@PostMapping(value=”newUser”)
public String addAnotherUser(@RequestBody AnotherUser user) {}
Básicamente, dos controladores diferentes con diferentes parámetros de tipo de cuerpo de solicitud con la misma URI.
davy.ai
En el caso de PostMapping, podemos lograr reducir la solicitud a un manejador específico con la ayuda del atributo “consumes”. El atributo “consumes” define el tipo de medio (encabezado “Content-Type”) que el manejador puede consumir.
Por ejemplo, en el escenario dado, podemos modificar las anotaciones de PostMapping de la siguiente manera:
En el código anterior, el primer manejador consume el tipo de medio “application/json” y el segundo manejador consume “application/xml”. De esta manera, cuando se realiza una solicitud con un tipo de medio específico, se dirigirá al manejador que puede consumir ese tipo de medio.
Nota: El tipo de medio definido en el atributo “consumes” debe coincidir con el encabezado “Content-Type” de la solicitud.