API 문서는 팀 협업의 필수 소통 도구이며, 수동 관리의 오류를 해결하기 위해 코드와 함께 관리되는 자동화가 중요합니다. 🤝
Swagger는 편리한 UI와 즉시성을 제공하지만, 비즈니스 코드 오염 및 낮은 신뢰성이라는 단점이 있습니다. 🎨
Spring RestDocs는 테스트 기반으로 높은 신뢰성과 운영 코드의 순수성을 보장하지만, 투박한 UI와 학습 곡선이 단점입니다. 🧪
두 도구의 장점(Swagger의 UI, RestDocs의 신뢰성)을 모두 활용하기 위해 OpenAPI Specification (OAS)을 징검다리 삼아 연동하는 방법을 제시합니다. ✨
restdocs-api-spec 라이브러리를 사용하여 Spring RestDocs의 테스트 결과물을 OpenAPI 명세로 쉽게 변환할 수 있으며, 기존 테스트 코드의 document 메소드 import만 변경하면 됩니다. 📚
OpenAPI 명세는 테스트 코드 실행 -> RestDocs .adoc 생성 -> restdocs-api-spec이 resource.json으로 메타데이터 정형화 -> 플러그인이 이를 통합하여 OpenAPI.yml을 생성하는 과정을 거쳐 만들어집니다. ⚙️
Swagger UI 연동은 지원 중단된 플러그인 대신, Swagger UI 정적 파일을 다운로드하여 Spring Boot의 static 경로에 배치하고, Gradle Task로 생성된 OpenAPI.yml을 복사한 후 swagger-initializer.js에서 경로를 설정하는 방식이 권장됩니다. 📁
이 방법을 통해 Spring RestDocs의 신뢰성 있는 API 문서를 Swagger UI의 시각적이고 편리한 형태로 제공하여, 두 마리 토끼를 모두 잡을 수 있습니다. ✅