1

나는 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을 정의하려고 시도했지만 작동하지 않았습니다.

+0

헤르 더브 역할 엔티티 순 (roleName)로 표시되어 있는가? 최대 절전 모드가 알지 못하기 때문에 고유 한 제약 조건을 부여하지 않고 역할이 이미 존재하는지 여부 –

답변

1

SpringFox에서는이 기능이 아직 존재하지 않지만, 지금은 꽤 오랫동안 구현할 사람을 찾고 있습니다.

https://github.com/springfox/springfox/issues/521

+0

힌트를 보내 주셔서 감사합니다. 어쩌면 나는 시간을 한 번 찾아 내고 그것을 시도 할 것입니다. 이렇게하면 삶이 훨씬 쉬워 질 것입니다. –

관련 문제