如何处理控制器内部的错误状态?
示例:我的控制器接受两个标头。如果两个标头都为空,则有问题,因此返回类型为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<?>
返回Customer
或ErrorResponse
。
@PostMapping("/generate/send")
fun handleRequest( @RequestHeader header1: String,
@RequestHeader header2: String): ResponseEntity<?> {
// ...
}