Programing/JAVA

swagger Could not resolve reference: Could not resolve pointer 오류 수정 방법

리커니 2023. 7. 20. 16:01
반응형

swagger 구현 후 특정 Operation을 클릭 했을 때 사용되는 DTO 객체를 참조할 수 없다는 오류가 발생하곤 합니다.

 

Could not resolve reference: Could not resolve pointer: /definitions/TestDTO - 테스트 DTO does not exist in document

 

swagger에서 등록을 할 때 참조를 할 수 없어서 발생하는 오류인데,

대부분 @ApiModel 이나 @ApiModelProperty 의 value 속성에 특수문자를 입력했기 때문에 발생합니다.

 

예를들어 '<', '>' '/' 와 같은 HTML 태그에 사용되는 특수문자나

'[', ']', '{', '}' 와 같은 JSON 형식에서 사용되는 특수문자를 사용했을 때 발생하게 됩니다.

 

문제가 발생하는 예)

 

'/' 때문에 문제 발생

@ApiModel(value = "InsUpdtDTO - 수정/등록용 DTO")

'[', ']' 때문에 문제 발생

@ApiModelProperty(value = "장비 ID / [VARCHAR2(33)]", required = true, example = "0")

 

해결 방법은 위와 같은 특수문자를 사용하지 않거나, 문자로 인식하도록 '\\'  를 붙여주면 됩니다.

 

@ApiModel(value = "InsUpdtDTO - 수정\\/등록용 DTO")
@ApiModelProperty(value = "장비 ID \\/ \\[VARCHAR2(33)\\]", required = true, example = "0")

 

안쓰는게 더 보기 좋긴 하죠^^;

반응형