update: swagger-config 수정

This commit is contained in:
UNGGU0704
2025-06-13 17:36:56 +09:00
parent 1d1e8af396
commit 419ef81e31
3 changed files with 53 additions and 70 deletions
@@ -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.info.Info;
import io.swagger.v3.oas.models.security.SecurityRequirement; import io.swagger.v3.oas.models.security.SecurityRequirement;
import io.swagger.v3.oas.models.security.SecurityScheme; 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.Bean;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
@@ -17,29 +18,21 @@ public class SwaggerConfig {
@Bean @Bean
public OpenAPI openAPI() { public OpenAPI openAPI() {
return new OpenAPI() final String securitySchemeName = "Bearer Authentication";
.info(new Info()
.title("Analytics Service API")
.description("하이오더 분석 서비스 API 문서")
.version("1.0.0"));
}
/**
* 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 토큰을 입력하세요
사용법: return new OpenAPI()
1. 로그인 API로 토큰 발급 .addServersItem(new Server().url("/"))
2. Bearer 접두사 없이 토큰만 입력 .info(new Info()
3. 예: eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOi... .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")));
} }
} }
@@ -1,5 +1,7 @@
package com.ktds.hi.member.config; 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.OpenAPI;
import io.swagger.v3.oas.models.info.Info; import io.swagger.v3.oas.models.info.Info;
import io.swagger.v3.oas.models.security.SecurityScheme; import io.swagger.v3.oas.models.security.SecurityScheme;
@@ -16,24 +18,21 @@ public class SwaggerConfig {
@Bean @Bean
public OpenAPI openAPI() { public OpenAPI openAPI() {
final String securitySchemeName = "Bearer Authentication";
return new OpenAPI() return new OpenAPI()
// .addServersItem(new Server().url("/")) .addServersItem(new Server().url("/"))
.info(new Info() .info(new Info()
.title("하이오더 회원 관리 서비스 API") .title("하이오더 회원 관리 서비스 API")
.description("회원 가입, 로그인, 취향 관리 등 회원 관련 기능을 제공하는 API") .description("회원 가입, 로그인, 취향 관리, 구독 관리 등 회원 관련 기능을 제공하는 API")
.version("1.0.0")); .version("1.0.0"))
} .addSecurityItem(new SecurityRequirement()
.addList(securitySchemeName))
/** .components(new Components()
* JWT Bearer 토큰을 위한 Security Scheme 생성 .addSecuritySchemes(securitySchemeName, new SecurityScheme()
*/ .name(securitySchemeName)
private SecurityScheme createAPIKeyScheme() { .type(SecurityScheme.Type.HTTP)
return new SecurityScheme() .scheme("bearer")
.type(SecurityScheme.Type.HTTP) .bearerFormat("JWT")));
.scheme("bearer")
.bearerFormat("JWT")
.in(SecurityScheme.In.HEADER)
.name("Authorization")
.description("JWT 토큰을 입력하세요 (Bearer 접두사 제외)");
} }
} }
@@ -1,7 +1,9 @@
package com.ktds.hi.recommend.infra.config; 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.OpenAPI;
import io.swagger.v3.oas.models.info.Info; 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.security.SecurityScheme;
import io.swagger.v3.oas.models.servers.Server; import io.swagger.v3.oas.models.servers.Server;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
@@ -14,34 +16,23 @@ import org.springframework.context.annotation.Configuration;
@Configuration @Configuration
public class SwaggerConfig { public class SwaggerConfig {
@Bean @Bean
public OpenAPI openAPI() { public OpenAPI openAPI() {
final String securitySchemeName = "Bearer Authentication";
return new OpenAPI() return new OpenAPI()
// .addServersItem(new Server().url("/")) .addServersItem(new Server().url("/"))
.info(new Info() .info(new Info()
.title("하이오더 추천 서비스 API") .title("하이오더 취향 추천 서비스 API")
.description("사용자 취향 기반 매장 추천 취향 분석 관련 기능을 제공하는 API") .description("사용자 취향 기반 매장 추천, 취향 분석, 추천 알고리즘 등 추천 관련 기능을 제공하는 API")
.version("1.0.0")); .version("1.0.0"))
} .addSecurityItem(new SecurityRequirement()
.addList(securitySchemeName))
/** .components(new Components()
* JWT Bearer 토큰을 위한 Security Scheme 생성 .addSecuritySchemes(securitySchemeName, new SecurityScheme()
*/ .name(securitySchemeName)
private SecurityScheme createAPIKeyScheme() { .type(SecurityScheme.Type.HTTP)
return new SecurityScheme() .scheme("bearer")
.type(SecurityScheme.Type.HTTP) .bearerFormat("JWT")));
.scheme("bearer")
.bearerFormat("JWT")
.in(SecurityScheme.In.HEADER)
.name("Authorization")
.description("""
JWT 토큰을 입력하세요
사용법:
1. 로그인 API로 토큰 발급
2. Bearer 접두사 없이 토큰만 입력
3. 예: eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOi...
""");
} }
} }