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/main/resources/application-local.yml b/src/main/resources/application-local.yml index 1e4e45f..0d09f06 100644 --- a/src/main/resources/application-local.yml +++ b/src/main/resources/application-local.yml @@ -15,5 +15,5 @@ spring: format_sql: true use_sql_comments: true hbm2ddl: - auto: create + auto: update default_batch_fetch_size: 1000 \ 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