SpringWolf
오픈소스 프로젝트
- Repository: https://github.com/springwolf/springwolf-core
- Star: 300+
- Fork : 90+
프로젝트 소개
Spring Boot 기반의 이벤트 드리븐 애플리케이션을 위한 자동화된 비동기 API 문서화 도구입니다.
코드에 이미 정의된 메타데이터(예: @KafkaListener, @RabbitListener 등)를 활용하여 AsyncAPI 사양에 준거하는 문서를 자동 생성하며, 수동 유지보수의 부담을 줄여줍니다.
프로젝트 정보
프로젝트 특징
- 자동 문서 생성: Spring Boot의 리스너 어노테이션을 스캔하여 소비자/프로듀서 엔드포인트 자동 감지 및 AsyncAPI 문서 생성
- UI 제공: springwolf-ui 모듈을 통해 직관적인 웹 UI 지원
- 다양한 프로토콜 지원: Kafka, RabbitMQ, SQS, SNS, JMS, STOMP/WebSocket 등 주요 비동기 메시징 시스템 지원
- 쉬운 통합: 최소한의 설정으로 Spring Boot 프로젝트에 추가 가능, Actuator 엔드포인트 통합 지원
- 확장성: 플러그인 아키텍처로 새로운 프로토콜 추가 용이, 정적 빌드 타임 문서 생성 가능
프로젝트 목적
- Spring Boot 기반 이벤트 드리븐 아키텍처에서 비동기 API 문서화의 공백을 메우기 위함
- OpenAPI/Swagger와 유사한 경험을 제공하여 문서 유지보수 효율화
- 팀 간 협업 및 API 거버넌스 강화
기술 스택 및 아키텍처
- 언어/프레임워크: Java, Spring Boot
- 문서 사양: AsyncAPI Specification (OpenAPI의 이벤트 드리븐 버전)
- 지원 라이브러리: Spring Kafka, Spring AMQP, Spring Cloud Stream, AWS SNS/SQS 등 플러그인 형태
기여사항
이슈요약
어노테이션 헤더항목에 타입을 지정하여도 string이라는 고정된 타입으로 인식되는 문제가 있었습니다.
AsyncAPI 표준을 준수하며 다양한 타입을 지원하도록 기능을 확장해야 합니다.
작업요약
- AsyncOperation 의 신규 필드 format 구현 및 JavaDoc 문서화
- 변경 사항에 대한 테스트 코드 업데이트
- 샘플코드 - 카프카모듈에 신규기능에 대한 샘플코드 업데이트