protected ResponseEntity<Object> handleMethodArgumentNotValid(MethodArgumentNotValidException ex, HttpHeaders headers, HttpStatus status, WebRequest request) {

	BindingResult bindingResult = ex.getBindingResult();
	List<FieldError> fieldErrors = bindingResult.getFieldErrors();
	List<ApiError> apiErrors = fieldErrors.stream()
			.map(this::createApiError)
			.collect(Collectors.toList());
	List<ObjectError> globalErrors = bindingResult.getGlobalErrors();
	apiErrors.addAll(globalErrors.stream()
			.map(e -> new ApiError(e.getCode(), null, e.getDefaultMessage()))
			.collect(Collectors.toList()));

	return new ResponseEntity(apiErrors, status);
}

        
main