스웨거 Schemas 동일 네이밍 응답 데이터 매칭 오류

AKMUPLAY·2024년 12월 17일
0

trouble

목록 보기
2/3

마주한 문제

같이 프로젝트를 하고 있는 팀원에게 다음과 같은 문의를 받았다.

200의 응답을 받았을 때 스웨거에서 예시로 보여주는 데이터와 실제 응답 데이터가 다르다는 문의였다.

단순히 스웨거 코드를 작성하는 과정에서 실수가 있었다고 생각했으나 확인해보니 코드에는 문제가 없었다.

그러나 예시 데이터로 보여지는 응답 데이터가 다른 api에서 사용되는 데이터이고 때문에 어떤 점을 고치면 제대로 동작할 거 같을지 감은 왔었다.

해결 방법

문제가 있는 응답 데이터의 클래스 이름은 DocumentGetResponse이다.

그리고 프로젝트 코드에서는 두 개의 DocumentGetResponse가 존재했다.

  • 예시 응답 데이터로 보여지는 DocumentGetResponse

  • 실제 응답 데이터인 DocumentGetResponse

두 응답 데이터의 클래스 이름이 같고 스웨거 아래에서 Schemas를 확인하면 프로젝트 코드를 작성하면서 맨 처음 만들었던 예시 데이터의 DocumentGetResponse만이 등록된 것을 확인할 수 있다.

  • 스웨거 Schemas에 등록된 DocumentGetResponse

찾아보니 스웨거에서 기본적으로 Schemas를 관리할 때 패키지까지 구별하여 관리하지 않기 때문에 중복된 네이밍을 가지면 하나만을 나타낼 수 있다고 한다.

처음에는 나중에 만든 DocumentGetResponse의 네이밍을 바꿔주려고 했는데 다른 방법이 있었다.

springdoc:
  use-fqn: true
  • yml 파일에 위 코드 추가

위 코드를 yml 파일에 추가하면 스웨거에서 Schemas를 패키지까지 구별하여 관리하기 때문에 네이밍이 같아도 구별할 수 있게 된다.

  • 패키지까지 구별하여 Schemas를 관리하는 모습

배운 점

어제도 스웨거 관련해서 포스팅을 올렸는데 계속해서 스웨거에서 이슈가 발생하고 있다.

비록 실제 응답 데이터에는 문제가 없어 프로젝트에 버그가 발생한 건 아니지만 보다 완벽한 프로젝트를 완성시켜 나가고 있는 거 같아서 좋다.

티키 릴리즈를 위해 더 파이팅!!!

profile
우리가 노래하듯이, 우리가 말하듯이, 우리가 예언하듯이 살길

0개의 댓글