From 1f704c4c83d787bd846ed0f101374466653a12d0 Mon Sep 17 00:00:00 2001 From: sshnote Date: Tue, 17 Dec 2024 21:29:20 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20=EC=8A=A4=EC=9B=A8=EA=B1=B0=20=EC=84=B8?= =?UTF-8?q?=ED=8C=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- build.gradle | 6 ++++ .../com/dearnote/DearnoteApplication.java | 2 ++ .../com/dearnote/config/SwaggerConfig.java | 34 +++++++++++++++++++ .../dearnote/DearnoteApplicationTests.java | 2 +- 4 files changed, 43 insertions(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 1d2cc67..dbb6dcc 100644 --- a/build.gradle +++ b/build.gradle @@ -26,11 +26,17 @@ repositories { dependencies { implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implementation 'org.springframework.boot:spring-boot-starter-web' + implementation 'org.springframework.boot:spring-boot-starter-validation' compileOnly 'org.projectlombok:lombok' annotationProcessor 'org.projectlombok:lombok' testImplementation 'org.springframework.boot:spring-boot-starter-test' testRuntimeOnly 'org.junit.platform:junit-platform-launcher' + + // mysql runtimeOnly 'com.mysql:mysql-connector-j' + + // swagger + implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.6.0' } tasks.named('test') { diff --git a/src/main/java/com/dearnote/DearnoteApplication.java b/src/main/java/com/dearnote/DearnoteApplication.java index 63c726b..190bfd3 100644 --- a/src/main/java/com/dearnote/DearnoteApplication.java +++ b/src/main/java/com/dearnote/DearnoteApplication.java @@ -2,8 +2,10 @@ import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.data.jpa.repository.config.EnableJpaAuditing; @SpringBootApplication +@EnableJpaAuditing public class DearnoteApplication { public static void main(String[] args) { diff --git a/src/main/java/com/dearnote/config/SwaggerConfig.java b/src/main/java/com/dearnote/config/SwaggerConfig.java index 59c8706..a4d4784 100644 --- a/src/main/java/com/dearnote/config/SwaggerConfig.java +++ b/src/main/java/com/dearnote/config/SwaggerConfig.java @@ -1,7 +1,41 @@ package com.dearnote.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 UMCstudyAPI() { + Info info = new Info() + .title("Dearnote API") + .description("Dearnote 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); + } } \ No newline at end of file diff --git a/src/test/java/com/dearnote/DearnoteApplicationTests.java b/src/test/java/com/dearnote/DearnoteApplicationTests.java index fcc4377..ea9a951 100644 --- a/src/test/java/com/dearnote/DearnoteApplicationTests.java +++ b/src/test/java/com/dearnote/DearnoteApplicationTests.java @@ -3,7 +3,7 @@ import org.junit.jupiter.api.Test; import org.springframework.boot.test.context.SpringBootTest; -@SpringBootTest +@SpringBootTest(classes = DearnoteApplication.class) class DearnoteApplicationTests { @Test