如果我想根据条件返回类型X或Y,使用什么Spring控制器方法返回类型?

问题描述 投票:0回答:1

我想在 Spring 控制器中创建根据条件返回 String 或 SseEmitter 的方法。

我应该在方法签名中指定什么返回类型?

@GetMapping("/test")
public WHAT_TO_WRITE_HERE test() {
    if (MyCondition) {
        SseEmitter emitter = new SseEmitter();
        //Fill SseEmitter with data, not related to question
        return emitter;
    } else {
        return "String";
    }
}
java spring spring-mvc
1个回答
0
投票

你不会的。您尝试做的事情违反了 REST 标准。您会破坏所有需要对 API 进行特殊处理的 REST 客户端。

遵循 REST API 标准,成功时返回

SseEmitter
(框架会将其转换为
200 OK
。如果出现错误,您将抛出
ResponseStatusException
并将状态代码和错误消息放入那里会得到正确的翻译,状态代码和错误消息将在客户期望的地方。

© www.soinside.com 2019 - 2024. All rights reserved.