Невозможно получить XML ответ, используя @RestController - PullRequest
0 голосов
/ 18 марта 2020

У меня небольшой пример, где я использую @RestController, так как мы знаем, что @RestController - это сочетание @Controller и @ResponseBody. В следующем фрагменте кода я могу получить ответ в формате json, но , если я хочу получить ответ в XML, что мне попробовать?

     @RestController
     public class CreditCardController {

     @Autowired
     CreditCradService creditcardService;

     @RequestMapping(path = "/getAllCards")
     public List<CreditCard> credit() {
         return creditcardService.getAllCards();
    }
}

Я попробовал несколько вещей, которые сделали не работает:

@RequestMapping(path="/getAllCards", produces = {MediaType.APPLICATION_XML_VALUE})

1 Ответ

1 голос
/ 18 марта 2020

Чтобы успешно возвратить XML полезную нагрузку, вам нужна следующая зависимость в вашем проекте:

<dependency>
    <groupId>com.fasterxml.jackson.dataformat</groupId>
    <artifactId>jackson-dataformat-xml</artifactId>
</dependency>

Далее необходимо аннотировать класс Java, который вы хотите вернуть из контроллера, с помощью @XmlRootElement, например:

@XmlRootElement
public class CreditCard {
   // your data class
}

и, наконец, вы можете указать атрибут produces вашего @GetMapping, как вы уже это делаете:

@GetMapping(value = "/getAllCards", produces = MediaType.APPLICATION_XML_VALUE)
public List<CreditCard> credit(){
  return creditcartService.getAllCards();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...