es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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.

Tags:  , , , ,

Answer

  1. Avatar for 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:

    @PostMapping(value="newUser", consumes = "application/json")
    public String addNewUser(@RequestBody User user)
    {}
    
    @PostMapping(value="newUser", consumes = "application/xml")
    public String addAnotherUser(@RequestBody AnotherUser user)
    {}
    

    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.

Comments are closed.