From ee134141e5ea924f849ed2d0d4a19212acd027d9 Mon Sep 17 00:00:00 2001 From: dl-00-e8 Date: Mon, 29 Sep 2025 13:42:21 +0900 Subject: [PATCH] =?UTF-8?q?chore:=20Swagger=20=EC=9D=98=EC=A1=B4=EC=84=B1?= =?UTF-8?q?=20=EB=B2=84=EC=A0=84=EC=97=85=20=EB=B0=8F=20=EA=B8=B0=EB=B3=B8?= =?UTF-8?q?=20=EC=84=A4=EC=A0=95=20=EC=A0=81=EC=9A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api-module/build.gradle | 2 +- .../global/config/SwaggerConfig.java | 35 +++++++++++++++++++ 2 files changed, 36 insertions(+), 1 deletion(-) create mode 100644 api-module/src/main/java/hongik/triple/apimodule/global/config/SwaggerConfig.java diff --git a/api-module/build.gradle b/api-module/build.gradle index 8df59cd..8812f99 100644 --- a/api-module/build.gradle +++ b/api-module/build.gradle @@ -19,7 +19,7 @@ dependencies { implementation 'org.springframework.boot:spring-boot-starter-validation' // Swagger UI - spring doc - implementation 'org.springdoc:springdoc-openapi-ui:1.6.14' + implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.8.6' // Spring Security implementation 'org.springframework.boot:spring-boot-starter-security' diff --git a/api-module/src/main/java/hongik/triple/apimodule/global/config/SwaggerConfig.java b/api-module/src/main/java/hongik/triple/apimodule/global/config/SwaggerConfig.java new file mode 100644 index 0000000..0050fe4 --- /dev/null +++ b/api-module/src/main/java/hongik/triple/apimodule/global/config/SwaggerConfig.java @@ -0,0 +1,35 @@ +package hongik.triple.apimodule.global.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 org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +@Configuration +public class SwaggerConfig { + + @Bean + public OpenAPI openAPI() { + Info info = new Info().title("AcneLog Server Swagger UI") + .description("AcneLog 서버 API 테스트 페이지입니다.") + .version("v0.0.1"); + + String jwtSchemeName = "JWT Authentication"; + SecurityRequirement securityRequirement = new SecurityRequirement().addList(jwtSchemeName); + Components components = new Components() + .addSecuritySchemes(jwtSchemeName, new SecurityScheme() + .name(jwtSchemeName) + .type(SecurityScheme.Type.HTTP) + .scheme("bearer") + .bearerFormat("JWT")); + + // Swagger UI 접속 후, 딱 한 번만 accessToken을 입력해주면 모든 API에 토큰 인증 작업이 적용됩니다. + return new OpenAPI() + .info(info) + .addSecurityItem(securityRequirement) + .components(components); + } +}