나는 REST 문서를 멋지게 사용하고 있습니다. 나는 그것을 설정하고 SwaggerUi에 대한 액세스 권한을 가지며 지원되는 방법으로 구성된 모든 REST 리소스를 볼 수 있습니다.Swagger - 선언 된 예외에 대한 응답 상태 렌더링
내 백엔드에는 모든 컨트롤러에 대해 전역 예외 처리를 수행하는 ControllerAdvice
이 있습니다. 이미 존재하는 리소스를 만들려고 할 때 컨트롤러 조언에서 처리되는 예제 예외는 ResourceAlreadyExistsException
입니다. 이 경우 내 예외 처리기는 409 CONFLICT
상태 코드로 응답합니다.
@RequestMapping(method = POST)
@ResponseStatus(HttpStatus.CREATED)
public RoleDto createRole(@RequestBody RoleDto roleDto) throws ResourceAlreadyExistsException {
return roleManager.createRole(roleDto);
}
, 자신감 만 가능한 응답 코드로 (201) 나 도시이 사전 조건
@ExceptionHandler(value = ResourceAlreadyExistsException.class)
@ResponseStatus(HttpStatus.CONFLICT)
protected ErrorResponse handleResourceAlreadyExists(ResourceAlreadyExistsException ex, WebRequest request) {
return new ErrorResponse(ex.getMessage());
}
은, 나머지 제어기는 다음과 같다에 매핑되는 방법을 만들의 나. 409도 가능하지만.
물론 메서드에 @ApiResponse(code = 409, message = "Role already exists")
정의를 추가 할 수는 있지만 예외를 던짐으로써 이미 암시하고있는 것처럼 이것은 이중 정보로 보입니다.
ResourceAlreadyExistsException
을 던질 수 있다면 409도 가능한 응답 코드입니까?
ResourceAlreadyExistsException
에 @ApiResponse
을 정의하려고 시도했지만 작동하지 않았습니다.
헤르 더브 역할 엔티티 순 (roleName)로 표시되어 있는가? 최대 절전 모드가 알지 못하기 때문에 고유 한 제약 조건을 부여하지 않고 역할이 이미 존재하는지 여부 –