Spring REST多个@RequestBody参数,可能吗?
Posted
技术标签:
【中文标题】Spring REST多个@RequestBody参数,可能吗?【英文标题】:Spring REST multiple @RequestBody parameters, possible? 【发布时间】:2011-08-09 06:06:21 【问题描述】:我已经实现了一个 Spring RESTful Web 服务。使用 Jackson JSON 进行对象映射。我有一个接受两个参数的方法。
public Person createPerson(
@RequestBody UserContext userContext,
@RequestBody Person person)
客户端如何构造一个请求,其中多个 JSON 对象将在正文中传递?
这可能吗?
-- 斯里
【问题讨论】:
【参考方案1】:我很确定那是行不通的。可能有一种解决方法,但更简单的方法是引入包装对象并更改您的签名:
public class PersonContext
private UserContext userContext;
private Person person;
// getters and setters
public Person createPerson(@RequestBody PersonContext personContext)
【讨论】:
@Srirangan:workarround 是 PersonContext 类 - 它是某种 DTO 我觉得问这个问题很愚蠢。 HTTP 请求如何有多个“主体”。啊。 2011-我很愚蠢。 @Srirangan 别担心,我们都去过那里 :-) @Sri,不过谢谢你的提问,它帮助了我们因为被深陷而不得不快速拿起 Spring。 This question 类似,有更详细的答案,你可能想链接。 @nonNumericalFloat 当然,只需使用自定义JsonDeserializer
实现用@JsonDeserialize
注释任何字段以上是关于Spring REST多个@RequestBody参数,可能吗?的主要内容,如果未能解决你的问题,请参考以下文章
spring rest @RequestBody 不使用 @Valid 验证
不支持 Spring Rest POST Json RequestBody 内容类型
如何在 Spring Boot REST API 中启用对 JSON / Jackson @RequestBody 的严格验证?