Я использую Пример Spring Boot и Spring Rest . В этом примере я передаю пользовательский заголовок, если это значение является допустимым, конечная точка вызывается успешно, если пользовательское значение заголовка неверно, то я получаю ответ ниже, который я хочу обернуть, чтобы показать его конечному пользователю, используя @ControllerAdvice
ExceptionHandler .
Примечание: я прошел через Spring mvc - Как сопоставить все неправильные сопоставления запросов с одним методом , но здесь, в моем случае, я принимаю решение на основе CustomHeader, пожалуйста, руководство меня.
{
"timestamp": "2020-01-28T13:47:16.201+0000",
"status": 404,
"error": "Not Found",
"message": "No message available",
"path": "/employee-data/employee-codes"
}
Контроллер
@Operation(summary = "Find Employee")
@ApiResponses(value = { @ApiResponse(code = 200, message = "SUCCESS"),
@ApiResponse(code = 500, message = "Internal Server Error") })
@Parameter(in = ParameterIn.HEADER, description = "X-Accept-Version", name = "X-Accept-Version",
content = @Content(schema = @Schema(type = "string", defaultValue = "v1",
allowableValues = {HeaderConst.V1}, implementation = Country.class)))
@GetMapping(value = "/employees/employee-codes", headers = "X-Accept-Version=v1")
public ResponseEntity<Employees> findEmployees(
@RequestParam(required = false) String employeeCd,
@RequestParam(required = false) String firstName,
@RequestParam(required = false) Integer lastName) {
Employees response = employeeService.getEmployees(employeeCd, firstName, lastName);
return new ResponseEntity<>(response, HttpStatus.OK);
}
Я реализовал HttpMessageNotReadableException
и HttpMediaTypeNotSupportedException
и NoHandlerFoundException
, но все еще не в состоянии обернуть эту ошибку.
Есть предложения?