728x90
개요
GlowGrow 프로젝트는 MSA(Microservice Architecture) 기반의 멀티 모듈 프로젝트입니다.
MSA 환경에서는 각 서비스마다 독립적인 API를 가지고 있어 전체 API를 파악하고 관리하기가 어렵습니다.
우리 프로젝트에서는 모든 요청이 API Gateway를 통해 라우팅되기 때문에, Gateway를 통한 통합적인 API 관리가 필수적입니다.
이러한 MSA 환경에서의 API 통합 관리를 위해 Swagger를 지원하는 springdoc-openapi-ui 설정이 필요합니다.
이를 통해 각 마이크로서비스의 API를 한 곳에서 문서화하고, 테스트할 수 있습니다.
설정
# springdoc-openapi-ui
gateway:
url: http://${SERVER_HOST}:${GATEWAY_SERVER_PORT}
springdoc:
api-docs:
version: openapi_3_1
enabled: true
path: /v3/api-docs
# 게이트웨이 라우팅에서 prefix를 제거하지 않았다면 해당 설정을 추가
enable-spring-security: true
default-consumes-media-type: application/json;charset=UTF-8 # 요청 객체 Data Type
default-produces-media-type: application/json;charset=UTF-8 # 응답 객체 Data Type
- 개발 생산성
- API 문서 자동 생성
- 코드 변경 시 문서 자동 업데이트
- 수동 문서 작성 시간 절약
- API 테스트 용이성
- Swagger UI를 통한 실시간 API 테스트
- 요청/응답 형식 즉시 확인
- 프론트엔드 개발자와의 협업 개선
- MSA 환경 최적화
- 여러 서비스의 API를 한 곳에서 관리
- Gateway를 통한 중앙화된 문서 제공
- 서비스 간 의존성 파악 용이
- 유지보수성
- 코드와 문서의 동기화 보장
- 일관된 문서 형식 유지
- API 변경사항 추적 용이
1. API 문서화 자동화
springdoc:
api-docs:
version: openapi_3_1 # OpenAPI 버전 지정
enabled: true # API 문서화 활성화
path: /v3/api-docs # API 문서 경로 설정
- OpenAPI 3.1 표준을 사용하여 문서 생성
- API 엔드포인트 자동 탐지 및 문서화
- /v3/api-docs 경로로 API 문서 접근 가능
2. Gateway 설정
gateway:
url: http://${SERVER_HOST}:${GATEWAY_SERVER_PORT}
- API Gateway 서버 주소 설정
- 환경변수를 통한 유연한 서버 설정
- 모든 API 요청의 진입점 역할
3. 데이터 형식 설정
default-consumes-media-type: application/json;charset=UTF-8 # 요청 데이터 타입
default-produces-media-type: application/json;charset=UTF-8 # 응답 데이터 타입
- JSON 형식의 요청/응답 설정
- UTF-8 인코딩으로 한글 지원
- 일관된 데이터 통신 형식 보장
1.