SpringMVC RequestMapping: Añadiendo .xml a la ruta del controller para la respuesta xml

/ pets produce una respuesta json. Me gustaría utilizar /pets.xml para generar una respuesta xml, manteniendo @RequestMapping ("mascotas") en el controller. Puedo usar

@RequestMapping("/index") @RequestMapping("/index.xml") 

como una solución, pero eso no es lo que estoy buscando.

 @RestController @RequestMapping("pets") class PetController { /*code*/ @RequestMapping(produces = arrayOf("application/json")) fun findPetsJson(): List<PetDto> { return petService.findAll() } // this results in /pets/.xml for the xml response. I'm aiming for /pets.xml @RequestMapping(".xml", produces = arrayOf("application/xml")) fun findPetsXml(): List<PetDto> { return petService.findAll() } } 

De forma pnetworkingeterminada, Spring MVC RequestMappingHandlerMapping agregará múltiples asignaciones para sus methods anotado @RequestMapping (o classs). Junto a la configurada, agregue una que termine con .* que coincida con las extensiones también.

Entonces, en su caso, /pets.xml ya es compatible con la asignación /pets.* que se crea de manera pnetworkingeterminada. Su produces ahora solo limita las requestes de aceptación según el encabezado de request de Accept .

Por defecto, la extensión del file tiene prioridad sobre el encabezado Content-Type .

Tener solo una function es suficiente. Solo necesita agregar arrayOf ("application / json", "application / xml) a él y produce ambos (en realidad sirve para ambos incluso si lo elimina, pero es explícito de esta manera.

 @RestController @RequestMapping("pets") class PetController { /*code*/ @RequestMapping(produces = arrayOf("application/json", "application/xml), method = RequestMethod.GET) fun findPetsJson(): List<PetDto> { return petService.findAll() } } 

Este código permite interogaciones en /pets.json y /pets.xml

  • ¿Cómo analizar xml en la encoding de la aplicación Android?
  • XML a / desde Java / Kotlin, multiplataforma
  • ¿Cómo puedo usar la callback en Kotlin?
  • Validar files XML grandes contra grandes XSD, ¿hay alguna manera rápida de hacerlo?
  • ¿Por qué agregar una Vista a mi layout cambia el ancho de todo el layout?
  • Forma dibujable en xml mismo código programáticamente
  • Error de ambigüedad de resolución de sobrecarga en kotlin
  • problemas de layout y errores en aplicaciones de Android desarrolladas usando kotlin
  • Cómo convertir Java a Kotlin en controller
  • time de espera de connection: conectar consultar logging de IDE
  • Cargue la configuration xml del muelle de forma dinámica