return 出现错误状态时来自控制器的不同类型的响应

return different type of response from controller when there is an error state

如何处理控制器内部的错误状态?

例如:我的控制器接受两个headers。如果 headers 都为 null 那么这是一个问题所以 return 类型 ErrorResponse 的响应否则如果一切正常那么 return 类型 customer.[=15 的响应=]

但是,当我们将处理程序方法定义为 return ResponseEntity<Customer>.

时出现问题

我的控制器:

@PostMapping("/generate/send")
fun handleRequest( @RequestHeader header1: String,
                    @RequestHeader header2: String): ResponseEntity<Customer> {
     
    if(header1 == null && header2== null) { // ERROR if both header null
      
        return ResponseEntity(ErrorResponse(""), HttpStatus.BAD_REQUEST )
    }

    return ResponseEntity(Customer(), HttpStatus.OK )
}

如何重构我的代码以防止这种情况或处理这种由于错误而必须 return 不同类型的情况?

您可以像这样使用 ResponseEntity<?> 到 return CustomerErrorResponse

@PostMapping("/generate/send")
fun handleRequest( @RequestHeader header1: String,
                    @RequestHeader header2: String): ResponseEntity<?> {
       // ...
}