Вы можете сделать что-то вроде этого:
Class ApiRequestBody {
private Integer num1;
private Integer num2;
public ApiRequestBody(Integer num1, Integer num2){
num1 = num1;
num2 = num2;
}
// Rest of getter and setters
}
@PostMapping(value="/add")
public int getCount(@RequestBody ApiRequestBody request) {
return countService.count(request.getNum1(), request.getNum2());
}
@Service
public class CountService throws Exception{
public int count(Integer num1, Integer num2) {
if(num1==null || num2 == null){
throw new Exception("Number cannot be null");
}
return num1+num2;
}
Создать новый класс для ответа:
Class ApiResponse {
private int errorCode;
private String message;
private String status;
public ApiResponse(Exception e){
errorCode = 400;
message = e.getMessage();
status = "Fail";
}
// Rest of the getter and setters
}
А затем в вашем контроллере Совет:
@ExceptionHandler(value= {Exception.class})
public ResponseEntity<ApiResponse> handleAnyException(Exception ex,WebRequest request){
ApiResponse response = new ApiResponse(ex);
return new ResponseEntity<>(response,new HttpHeaders(),HttpStatus.INTERNAL_SERVER_ERROR);
}
Это всего лишь образец.Это можно сделать лучшими способами, например, создав собственный класс исключений, выбрасывая это исключение, перехватывая это конкретное исключение в Controller Advice, создавая правильный ответ, такой как соответствующий код ответа, сообщение и возвращая его.Но я просто даю вам идею, как это можно сделать.