gpt4 book ai didi

spring - 如何在一个端点中使用不同的请求体?

转载 作者:行者123 更新时间:2023-12-04 15:08:05 25 4
gpt4 key购买 nike

我需要构建一个服务,该服务需要在一个端点的请求正文中使用不同的 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 错误。

服务使用示例;

  • url: '/domain/one?xmlType=Profile', body(requestBody): <Profile></Profile>
  • url: '/domain/one?xmlType=Employee', body(requestBody): <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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com