作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要构建一个服务,该服务需要在一个端点的请求正文中使用不同的 xmlType。
为此,我实现了这个:
@PostMapping(value="/one")
public ResponseEntity<?> result(
String xmlType,
@RequestBody Object body
) {
Employe employee = null; // employee object that is generated by xsd file.
Profile profile = null; // profile object that is generated by xsd file.
if (body instanceof Employe) {
employee = (Employe) body;
} else if (body instanceof Profile) {
profile = (Profile) body;
}
// business logic
return ResponseEntity.accepted().build();
}
但通过此实现,我遇到了Unsupported Media Type 错误。
服务使用示例;
<Profile></Profile>
<Employee></Employee>
当我使用特定对象时,它可以工作,但我无法实现通用版本。那么,我怎样才能实现这个功能呢?
最佳答案
感谢 params
,我将使用两种方法缩小请求映射范围:
@PostMapping(value = "/one", params = "xmlType=Profile")
public ResponseEntity<?> postProfile(@RequestBody Profile body) {
...
}
@PostMapping(value = "/one", params = "xmlType=Employee")
public ResponseEntity<?> postEmployee(@RequestBody Employee body) {
...
}
关于spring - 如何在一个端点中使用不同的请求体?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65703163/
我是一名优秀的程序员,十分优秀!