정글에서 온 개발자

Go 웹 API swagger로 문서화 패키지 고르기 본문

TIL

Go 웹 API swagger로 문서화 패키지 고르기

dev-diver 2025. 1. 20. 00:04

Go 에서는 swaggo라는 패키지를 이용해서 swagger 문서화를 지원한다.
그런데, 곤란하게도 swaggo에서도 자체적으로 fiber용으로 패키지를 만들고, fiber에서도 자체적으로 swagger를 위한 middleware를 만들었다.

사진의 위에 있는 게 fiber에서 만든 것,  세번째에 있는게 swaggo에서 만든 것이다.
(중간에 v2를 제공하는 스파이가 있는 것 같지만, 공식이 더 좋을 것 같아 패스)

GPT에 물어봤을 때는 fiberSwagger가 더 좋다고 하지만, 실제 써봤을 때는 달랐다. 커스텀이 swagger가 더 좋다고 느껴졌다.
그래서 pkg.go.dev 에 들어가 검색해본 결과,  import 부터 gofiber의 swagger가 높았다.

둘다 github의 readme가 친절하지 않은 관계로 docs를 보았다.

Swagger

index
config struct

fiberSwagger

index
config struct

config 할 수 있는게 fiber에서 제공하는 swagger가 압도적인걸 확인할 수 있다.

내가 주목한 건 DefaultModelsExpandDepth 였는데.  swaggo에는 아예 제공하지 않는다.

이게 안 돼서 불편한 점은 아래와 같이 단순한 string 형 속성도 무슨 대단한 계층이 숨어있는 것처럼 숨겨버린다. 

뭐지? msg 구조체인가?
짠! string이였습니다.

위 문제 때문에 바쁜 개발 와중에 문서를 작성 안하게 됐는데, 이제 더 좋은 패키지를 알게 되었으니 잘 쓸 것 같다!

결론

난  이 패키지가 더 좋다.  github.com/gofiber/swagger