У меня есть служба SpringBoot с:
Модель
public class Payload {
private final String id;
public Payload(String id){
this.id = id;
}
public String getId() {
return this.id;
}
}
Контроллер
@RestController
@RequestMapping("/payload")
public class PayloadController {
@RequestMapping(method = RequestMethod.POST)
public Payload post(@RequestBody final Payload payload) {
return payload;
}
}
Мне нужен этот контроллер, чтобы иметь возможность обрабатывать запросы JSON и XML иответить в том же формате. Это работает нормально, если я установил заголовки Content-Type
и Accept
на правильный тип носителя.
Однако мои полезные нагрузки XML должны быть слегка отличны от структуры моего JSON:
XML:
<Payload>
<id value="some-value"/>
</Payload>
JSON:
{
id: "some-value"
}
Как мне убедиться, что мой id
обернут в узел xml и имеет "значение" в качестве атрибута?
Я пытался использовать аннотации @JsonSerialize
и @JsonDeserialize
на моем Payload
класс, но как только я это делаю, я получаю следующую ошибку, когда POST
ing XML
{
"timestamp": "2019-10-01T12:06:35.593+0000",
"status": 415,
"error": "Unsupported Media Type",
"message": "Content type 'application/xml;charset=UTF-8' not supported",
"path": "/payload"
}