From 419ef81e317a9c007a2f13d8f9af4928f3ea36f3 Mon Sep 17 00:00:00 2001 From: UNGGU0704 Date: Fri, 13 Jun 2025 17:36:56 +0900 Subject: [PATCH] =?UTF-8?q?update:=20swagger-config=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../analytics/infra/config/SwaggerConfig.java | 43 ++++++++---------- .../ktds/hi/member/config/SwaggerConfig.java | 35 +++++++-------- .../recommend/infra/config/SwaggerConfig.java | 45 ++++++++----------- 3 files changed, 53 insertions(+), 70 deletions(-) diff --git a/analytics/src/main/java/com/ktds/hi/analytics/infra/config/SwaggerConfig.java b/analytics/src/main/java/com/ktds/hi/analytics/infra/config/SwaggerConfig.java index e894a51..7598a44 100644 --- a/analytics/src/main/java/com/ktds/hi/analytics/infra/config/SwaggerConfig.java +++ b/analytics/src/main/java/com/ktds/hi/analytics/infra/config/SwaggerConfig.java @@ -5,6 +5,7 @@ import io.swagger.v3.oas.models.OpenAPI; import io.swagger.v3.oas.models.info.Info; import io.swagger.v3.oas.models.security.SecurityRequirement; import io.swagger.v3.oas.models.security.SecurityScheme; +import io.swagger.v3.oas.models.servers.Server; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @@ -14,32 +15,24 @@ import org.springframework.context.annotation.Configuration; */ @Configuration public class SwaggerConfig { - + @Bean public OpenAPI openAPI() { + final String securitySchemeName = "Bearer Authentication"; + return new OpenAPI() - .info(new Info() - .title("Analytics Service API") - .description("하이오더 분석 서비스 API 문서") - .version("1.0.0")); + .addServersItem(new Server().url("/")) + .info(new Info() + .title("하이오더 AI 분석 서비스 API") + .description("데이터 수집, AI 피드백 생성, 분석 조회, 실행 계획 관리 등 AI 분석 관련 기능을 제공하는 API") + .version("1.0.0")) + .addSecurityItem(new SecurityRequirement() + .addList(securitySchemeName)) + .components(new Components() + .addSecuritySchemes(securitySchemeName, new SecurityScheme() + .name(securitySchemeName) + .type(SecurityScheme.Type.HTTP) + .scheme("bearer") + .bearerFormat("JWT"))); } - /** - * JWT Bearer 토큰을 위한 Security Scheme 생성 - */ - private SecurityScheme createAPIKeyScheme() { - return new SecurityScheme() - .type(SecurityScheme.Type.HTTP) - .scheme("bearer") - .bearerFormat("JWT") - .in(SecurityScheme.In.HEADER) - .name("Authorization") - .description(""" - JWT 토큰을 입력하세요 - - 사용법: - 1. 로그인 API로 토큰 발급 - 2. Bearer 접두사 없이 토큰만 입력 - 3. 예: eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOi... - """); - } -} +} \ No newline at end of file diff --git a/member/src/main/java/com/ktds/hi/member/config/SwaggerConfig.java b/member/src/main/java/com/ktds/hi/member/config/SwaggerConfig.java index 993c465..2009931 100644 --- a/member/src/main/java/com/ktds/hi/member/config/SwaggerConfig.java +++ b/member/src/main/java/com/ktds/hi/member/config/SwaggerConfig.java @@ -1,5 +1,7 @@ package com.ktds.hi.member.config; +import io.swagger.v3.oas.models.security.SecurityRequirement; +import io.swagger.v3.oas.models.Components; import io.swagger.v3.oas.models.OpenAPI; import io.swagger.v3.oas.models.info.Info; import io.swagger.v3.oas.models.security.SecurityScheme; @@ -13,27 +15,24 @@ import org.springframework.context.annotation.Configuration; */ @Configuration public class SwaggerConfig { - + @Bean public OpenAPI openAPI() { + final String securitySchemeName = "Bearer Authentication"; + return new OpenAPI() - // .addServersItem(new Server().url("/")) + .addServersItem(new Server().url("/")) .info(new Info() .title("하이오더 회원 관리 서비스 API") - .description("회원 가입, 로그인, 취향 관리 등 회원 관련 기능을 제공하는 API") - .version("1.0.0")); + .description("회원 가입, 로그인, 취향 관리, 구독 관리 등 회원 관련 기능을 제공하는 API") + .version("1.0.0")) + .addSecurityItem(new SecurityRequirement() + .addList(securitySchemeName)) + .components(new Components() + .addSecuritySchemes(securitySchemeName, new SecurityScheme() + .name(securitySchemeName) + .type(SecurityScheme.Type.HTTP) + .scheme("bearer") + .bearerFormat("JWT"))); } - - /** - * JWT Bearer 토큰을 위한 Security Scheme 생성 - */ - private SecurityScheme createAPIKeyScheme() { - return new SecurityScheme() - .type(SecurityScheme.Type.HTTP) - .scheme("bearer") - .bearerFormat("JWT") - .in(SecurityScheme.In.HEADER) - .name("Authorization") - .description("JWT 토큰을 입력하세요 (Bearer 접두사 제외)"); - } -} +} \ No newline at end of file diff --git a/recommend/src/main/java/com/ktds/hi/recommend/infra/config/SwaggerConfig.java b/recommend/src/main/java/com/ktds/hi/recommend/infra/config/SwaggerConfig.java index f0e4f1d..dee42cf 100644 --- a/recommend/src/main/java/com/ktds/hi/recommend/infra/config/SwaggerConfig.java +++ b/recommend/src/main/java/com/ktds/hi/recommend/infra/config/SwaggerConfig.java @@ -1,7 +1,9 @@ package com.ktds.hi.recommend.infra.config; +import io.swagger.v3.oas.models.Components; import io.swagger.v3.oas.models.OpenAPI; import io.swagger.v3.oas.models.info.Info; +import io.swagger.v3.oas.models.security.SecurityRequirement; import io.swagger.v3.oas.models.security.SecurityScheme; import io.swagger.v3.oas.models.servers.Server; import org.springframework.context.annotation.Bean; @@ -14,34 +16,23 @@ import org.springframework.context.annotation.Configuration; @Configuration public class SwaggerConfig { - @Bean public OpenAPI openAPI() { - return new OpenAPI() - // .addServersItem(new Server().url("/")) - .info(new Info() - .title("하이오더 추천 서비스 API") - .description("사용자 취향 기반 매장 추천 및 취향 분석 관련 기능을 제공하는 API") - .version("1.0.0")); - } + final String securitySchemeName = "Bearer Authentication"; - /** - * JWT Bearer 토큰을 위한 Security Scheme 생성 - */ - private SecurityScheme createAPIKeyScheme() { - return new SecurityScheme() - .type(SecurityScheme.Type.HTTP) - .scheme("bearer") - .bearerFormat("JWT") - .in(SecurityScheme.In.HEADER) - .name("Authorization") - .description(""" - JWT 토큰을 입력하세요 - - 사용법: - 1. 로그인 API로 토큰 발급 - 2. Bearer 접두사 없이 토큰만 입력 - 3. 예: eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOi... - """); + return new OpenAPI() + .addServersItem(new Server().url("/")) + .info(new Info() + .title("하이오더 취향 추천 서비스 API") + .description("사용자 취향 기반 매장 추천, 취향 분석, 추천 알고리즘 등 추천 관련 기능을 제공하는 API") + .version("1.0.0")) + .addSecurityItem(new SecurityRequirement() + .addList(securitySchemeName)) + .components(new Components() + .addSecuritySchemes(securitySchemeName, new SecurityScheme() + .name(securitySchemeName) + .type(SecurityScheme.Type.HTTP) + .scheme("bearer") + .bearerFormat("JWT"))); } -} +} \ No newline at end of file