当存在错误状态时,从控制器返回不同类型的响应



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

示例:我的控制器接受两个标头。如果两个标头都为空,则有问题,因此返回类型为ErrorResponse的响应,否则如果一切正常,则返回类型为customer的响应。

然而,有一个问题,因为我们定义的处理程序方法返回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 )
}

如何重构我的代码来防止这种情况或处理这种类型的情况,我必须返回一个不同的类型,因为一个错误?

您可以像这样使用ResponseEntity<?>返回CustomerErrorResponse

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

最新更新