SpringWolf

오픈소스 프로젝트


프로젝트 소개

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 등 플러그인 형태

기여사항

헤더 데이터 타입 AsyncAPI 표준에 따른 지원 #1506

Issue: #1506Pull Request: #1510작업기간: 2025.11.08 ~ 2025.11.09

이슈요약

어노테이션 헤더항목에 타입을 지정하여도 string이라는 고정된 타입으로 인식되는 문제가 있었습니다.

AsyncAPI 표준을 준수하며 다양한 타입을 지원하도록 기능을 확장해야 합니다.

작업요약

  • AsyncOperation 의 신규 필드 format 구현 및 JavaDoc 문서화
  • 변경 사항에 대한 테스트 코드 업데이트
  • 샘플코드 - 카프카모듈에 신규기능에 대한 샘플코드 업데이트