From b3b34de70585b7a975f0575d4a5789dfaf0ad015 Mon Sep 17 00:00:00 2001 From: yxhwxn Date: Wed, 10 Jul 2024 04:18:26 +0900 Subject: [PATCH] Feat: swagger settings --- build.gradle | 2 + .../suppin/global/config/SwaggerConfig.java | 41 +++++++++++++++++++ 2 files changed, 43 insertions(+) create mode 100644 src/main/java/com/cmc/suppin/global/config/SwaggerConfig.java diff --git a/build.gradle b/build.gradle index 3403a64..c094a9e 100644 --- a/build.gradle +++ b/build.gradle @@ -30,6 +30,8 @@ dependencies { implementation("org.springdoc:springdoc-openapi-starter-webmvc-ui:2.0.2") implementation("org.springframework.boot:spring-boot-starter-data-jpa") implementation 'org.springframework.boot:spring-boot-starter-web' + implementation 'org.springdoc:springdoc-openapi-ui:1.6.11' + compileOnly 'org.projectlombok:lombok' developmentOnly 'org.springframework.boot:spring-boot-devtools' runtimeOnly 'com.mysql:mysql-connector-j' diff --git a/src/main/java/com/cmc/suppin/global/config/SwaggerConfig.java b/src/main/java/com/cmc/suppin/global/config/SwaggerConfig.java new file mode 100644 index 0000000..70170a0 --- /dev/null +++ b/src/main/java/com/cmc/suppin/global/config/SwaggerConfig.java @@ -0,0 +1,41 @@ +package com.cmc.suppin.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 io.swagger.v3.oas.models.servers.Server; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +@Configuration +public class SwaggerConfig { + + @Bean + public OpenAPI suppinAPI() { + Info info = new Info() + .title("suppin API") + .description("suppin API 명세서") + .version("1.0.0"); + + String jwtSchemeName = "JWT TOKEN"; + // API 요청헤더에 인증정보 포함 + SecurityRequirement securityRequirement = new SecurityRequirement().addList(jwtSchemeName); + // SecuritySchemes 등록 + Components components = new Components() + .addSecuritySchemes( + jwtSchemeName, + new SecurityScheme() + .name(jwtSchemeName) + .type(SecurityScheme.Type.HTTP) // HTTP 방식 + .scheme("bearer") + .bearerFormat("JWT")); + + return new OpenAPI() + .addServersItem(new Server().url("/")) + .info(info) + .addSecurityItem(securityRequirement) + .components(components); + } +}