카테고리 없음

Swagger 요청 값 불일치 오류

kangchaewon 2025. 7. 4. 17:25

문제

Swagger

Controller

Dto

 

Swagger에서 Controller에서 지정한 DTO를 요청하지 않고 다른 DTO를 요청함


원인

@Data
public class ClubRequest {
    @Builder
    @Getter
    @NoArgsConstructor
    @AllArgsConstructor
    @Schema(description = "동아리 등록 요청")
    public static class RegisterRequest {
        private String clubName;
        private String description;
    }
}

@Data
public class UserRequest {
    @Builder
    @Getter
    @NoArgsConstructor
    @AllArgsConstructor
    public static class RegisterRequest {
        private String userName;
    }
}
  • dto 파일들에 이름이 같은 내부 클래스가 여러개 존재
  • 이럴 경우, Swagger 문서 생성기(SpringDoc)가 잘못된 클래스를 참조하거나 캐시해서 userName처럼 옛 DTO 필드가 Swagger에 노출됨

 

해결

 

yml 파일에 

springdoc:
  use-fqn: true

를 넣어주면 제대로 동작한다!

 

use-fqn: true는com.example.hello_springboot.model.ClubRequest.RegisterRequest처럼 파일명을 확인하여 정확환 식별자를 사용하여 swagger 문서를 생성한다.