gpt4 book ai didi

java - 使用通用 'header' 增强 Spring Rest API

转载 作者:行者123 更新时间:2023-11-29 04:55:17 26 4
gpt4 key购买 nike

我有许多 Spring REST 端点都需要返回具有以下结构的 JSON:

"code": 0,
"status": "SUCCESS",
"debug": {
...
},
"someData": {
...
}

状态、代码和调试部分是每个响应的通用“ header ”,但“someData”是特定于每个端点的,具有 每个响应的不同名称,在某些情况下,名称由响应中相同级别的多个元素组成。

特别是成功响应的状态和代码始终相同。 (请注意,还有一个全局 @ControllerAdvice 用于处理返回状态/代码/消息错误响应的自定义和未捕获的异常)。

显然,我们可以简单地为每个 Controller 创建新的 POJO,这些 Controller (比如说)扩展一些包含通用内容的基类并添加细节让 Spring/Jackson 完成其余的工作(没有双关语意)。

但我希望有一些巧妙的方法可以用通用代码/状态/调试位“装饰”特定响应。 AOP 似乎有些矫枉过正,自定义 Jackson 转换器也是如此。

请注意,我们无法更改要求(例如使用“正确的”HTTP 响应代码、 header 等),因为它是一个现有的实时 API。

最佳答案

我建议为您期望的每种响应类型设置一个单独的类。如果它们都包含代码/状态/调试,则有一个基类并设置每个响应类型以扩展该基类。

此外,REST 设置为不仅包含响应主体,还包含响应 header 和响应状态代码 ( Link to glossary on w3.org ),其中一些是标准的。其他自定义代码也有足够的空间。与其在响应正文中包含代码和状态,不如设置代码呢?

关于java - 使用通用 'header' 增强 Spring Rest API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34024560/

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