gpt4 book ai didi

java - Spring + jackson : Wrapping Response Body in response object

转载 作者:行者123 更新时间:2023-12-02 21:24:46 27 4
gpt4 key购买 nike

这可能是一个奇怪的问题,虽然我想知道为什么以前没有人问过或提出过...所以如果有任何无知请纠正我。

首先,我将 Jackson 与 Spring 和 @ResponseBody 注释结合使用。目前,对于每个请求处理程序,我都返回一个“响应”包装器对象,因为这是客户端所期望的。这个包装器非常简单:

{ "response": { "data" : ACTUAL_DATA } }

事实是,我不喜欢显式包装所有请求处理程序的每个返回值。我也不喜欢在我的单元测试中解开这些响应包装器。

相反,我想知道是否可以按原样返回 ACTUAL_DATA,并截获此数据并将其包装在其他地方。

如果这实际上是可能的,那么是否可以读取附加到被拦截请求处理程序的注释?这样我就可以使用自定义注释来决定如何包装数据。

例如像这样的东西会很棒(注意@FetchResponse 和@ResponseWrapper 是由建议的注释组成的):

@RequestMapping(...)
@FetchResponse
@ResponseBody
public List<User> getUsers() {
...
}

@ResponseWrapper(FetchResponse.class)
public Object wrap(Object value) {
ResponseWrapper rw = new ResponseWrapper();
rw.setData(value);
return rw;
}

有人熟悉这个地区吗?或者,为什么这可能是不好的做法?

最佳答案

好吧,看起来我正在寻找 Spring 的“ResponseBodyAdvice”和“AbstractMappingJacksonResponseBodyAdvice”。

关于java - Spring + jackson : Wrapping Response Body in response object,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25375228/

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