Spring MVC REST - 标准请求正文包装器

时间:2016-01-20 14:12:51

标签: spring rest spring-mvc

使用Spring MVC @RestController实现常见REST请求正文解包效果的最佳方法是什么?

换句话说,假设我有以下控制器:

@RestController
public class MyController {

    @RequestMapping(value = "/", method = POST)
    public Object hello(@RequestBody MyDTO dto) {
        ...
    }
}

我希望实际的帖子是:

{
  "version": "1.0",
  "payload": {
    ...
  }
}

可以用以下类表示:

public class ApiRequestDTO<TPayload> {
    private String   version;
    private TPayload payload;
    ...

    // Getters and Setters...
    ...
}

因此,在这种特殊情况下,客户端会发送ApiRequestDTO<MyDTO>的实例。

我使用@ControllerAdvice实现了相反的(响应体包装器),但我注意到它不会完全适用于请求体。我能看到的一种可能的方法是装饰所有相关的消息转换器。但我想知道是否有更好的方法?

0 个答案:

没有答案