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

View File

@ -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;
@ -14,32 +15,24 @@ 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()
.info(new Info() .addServersItem(new Server().url("/"))
.title("Analytics Service API") .info(new Info()
.description("하이오더 분석 서비스 API 문서") .title("하이오더 AI 분석 서비스 API")
.version("1.0.0")); .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...
""");
}
}

View File

@ -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;
@ -13,27 +15,24 @@ 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()
.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 접두사 제외)");
}
}

View File

@ -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() {
return new OpenAPI() final String securitySchemeName = "Bearer Authentication";
// .addServersItem(new Server().url("/"))
.info(new Info()
.title("하이오더 추천 서비스 API")
.description("사용자 취향 기반 매장 추천 및 취향 분석 관련 기능을 제공하는 API")
.version("1.0.0"));
}
/** return new OpenAPI()
* JWT Bearer 토큰을 위한 Security Scheme 생성 .addServersItem(new Server().url("/"))
*/ .info(new Info()
private SecurityScheme createAPIKeyScheme() { .title("하이오더 취향 추천 서비스 API")
return new SecurityScheme() .description("사용자 취향 기반 매장 추천, 취향 분석, 추천 알고리즘 등 추천 관련 기능을 제공하는 API")
.type(SecurityScheme.Type.HTTP) .version("1.0.0"))
.scheme("bearer") .addSecurityItem(new SecurityRequirement()
.bearerFormat("JWT") .addList(securitySchemeName))
.in(SecurityScheme.In.HEADER) .components(new Components()
.name("Authorization") .addSecuritySchemes(securitySchemeName, new SecurityScheme()
.description(""" .name(securitySchemeName)
JWT 토큰을 입력하세요 .type(SecurityScheme.Type.HTTP)
.scheme("bearer")
사용법: .bearerFormat("JWT")));
1. 로그인 API로 토큰 발급
2. Bearer 접두사 없이 토큰만 입력
3. : eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOi...
""");
} }
} }