Skip to content

docs: Swagger(OpenAPI) API 문서 도입 - #214

Merged
sjungwon03 merged 1 commit into
devfrom
docs/213-swagger-openapi
Jul 24, 2026
Merged

docs: Swagger(OpenAPI) API 문서 도입#214
sjungwon03 merged 1 commit into
devfrom
docs/213-swagger-openapi

Conversation

@sjungwon03

@sjungwon03 sjungwon03 commented Jul 24, 2026

Copy link
Copy Markdown
Member

변경 내용

  • springdoc-openapi-starter-webmvc-ui:2.8.6 의존성 추가
  • OpenApiConfig 추가
    • API 제목/설명/버전 메타정보 + JWT Authorization: Bearer 인증 스킴(bearerAuth) 등록
    • 공통 에러 응답(global.error.ErrorResponse) 스키마를 명시적으로 등록하고, OperationCustomizer로 전체 오퍼레이션에 4XX/5XX 공통 에러 응답을 전역 부여 (예외 핸들러가 던지는 응답이라 컨트롤러 반환 타입만으로는 springdoc이 알 수 없어서 수동 등록 필요)
  • SecurityConfig는 별도 수정 없음 — /v3/api-docs, /swagger-ui/**는 기존 anyRequest().permitAll() 캐치올로 이미 접근 가능
  • 전체 REST 컨트롤러(25개, STOMP 기반 PolicyChatMessageController 제외)에 클래스 레벨 @Tag, 메서드 레벨 @Operation(summary, description) 추가
    • description은 기존 Javadoc이 있으면 그 내용을 재사용, 없으면 새로 작성 (기존 Javadoc은 삭제하지 않고 유지)
    • 성공 응답 타입(ApiResponse<T> 제네릭)과 요청 DTO(Bean Validation 포함)는 springdoc이 컨트롤러 시그니처에서 자동으로 정확히 추론하므로 별도 어노테이션 없이도 이미 스키마에 반영됨을 확인

검증

  • ./gradlew spotlessApply./gradlew compileJava./gradlew test spotlessCheck 모두 통과
  • 로컬 인프라(docker compose MySQL/Redis/MinIO)로 앱을 직접 기동해 확인
    • /v3/api-docs: 25개 태그, 61개 오퍼레이션 전부에 summary + 200/4XX/5XX 응답 존재, ErrorResponse/FieldErrorDetail 스키마 정상 등록
    • 응답 데이터 스키마 예시: ApiResponseListPolicyCardResponse처럼 제네릭 T별로 스키마가 정확히 분리되어 있음 확인
    • 요청 데이터 스키마 예시: PolicyApplicationCreateRequest 등에서 @Pattern/@Size/필수값이 pattern/maxLength/required로 정확히 반영됨 확인
    • /swagger-ui/index.html: 브라우저에서 태그 그룹/summary/description 정상 렌더링, JWT Authorize 버튼 동작 확인

연결 이슈

Closes #213

springdoc-openapi를 추가하고 전체 REST 컨트롤러에 @Tag/@operation을
붙여 /swagger-ui에서 실제 코드 기준 API 문서를 바로 확인할 수 있게 한다.

Closes #213
@sjungwon03 sjungwon03 added the docs 문서 작성 label Jul 24, 2026
@sjungwon03 sjungwon03 self-assigned this Jul 24, 2026
@sjungwon03
sjungwon03 requested a review from myh7754 July 24, 2026 06:49
@sjungwon03
sjungwon03 merged commit 6fa6b08 into dev Jul 24, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

docs 문서 작성

Projects

None yet

Development

Successfully merging this pull request may close these issues.

docs: Swagger(OpenAPI) API 문서 도입

1 participant