From 2ef1a9255f4d3d223840b9c35a1fb8e51f8399d1 Mon Sep 17 00:00:00 2001 From: luming Date: Wed, 30 Jun 2021 21:10:23 +0800 Subject: [PATCH] swagger --- build.gradle.kts | 4 ++ .../email/timemail/mail/MailApplication.kt | 4 +- .../timemail/mail/config/SwaggerConfig.kt | 45 +++++++++++++++++++ 3 files changed, 52 insertions(+), 1 deletion(-) create mode 100644 src/main/kotlin/email/timemail/mail/config/SwaggerConfig.kt diff --git a/build.gradle.kts b/build.gradle.kts index 6f0acc6..9148500 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -17,11 +17,15 @@ repositories { dependencies { implementation("org.springframework.boot:spring-boot-starter") + implementation("org.springframework.boot:spring-boot-starter-web") + implementation("org.springframework.boot:spring-boot-starter-aop") implementation("org.jetbrains.kotlin:kotlin-reflect") implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8") testImplementation("org.springframework.boot:spring-boot-starter-test") implementation("com.github.xiaoymin:knife4j-spring-boot-starter:3.0.2") implementation("com.baomidou:mybatis-plus-boot-starter:3.4.2") + implementation("com.alibaba:druid-spring-boot-starter:1.2.5") + implementation("org.postgresql:postgresql:42.2.18") } tasks.withType { diff --git a/src/main/kotlin/email/timemail/mail/MailApplication.kt b/src/main/kotlin/email/timemail/mail/MailApplication.kt index a765e8a..c7154e2 100644 --- a/src/main/kotlin/email/timemail/mail/MailApplication.kt +++ b/src/main/kotlin/email/timemail/mail/MailApplication.kt @@ -1,11 +1,13 @@ package email.timemail.mail +import org.mybatis.spring.annotation.MapperScan import org.springframework.boot.autoconfigure.SpringBootApplication import org.springframework.boot.runApplication @SpringBootApplication +@MapperScan("email.timemail.mail.mapper*") class MailApplication fun main(args: Array) { - runApplication(*args) + runApplication(*args) } diff --git a/src/main/kotlin/email/timemail/mail/config/SwaggerConfig.kt b/src/main/kotlin/email/timemail/mail/config/SwaggerConfig.kt new file mode 100644 index 0000000..d38c566 --- /dev/null +++ b/src/main/kotlin/email/timemail/mail/config/SwaggerConfig.kt @@ -0,0 +1,45 @@ +package email.timemail.mail.config + +import com.github.xiaoymin.knife4j.spring.annotations.EnableKnife4j +import io.swagger.annotations.ApiOperation +import org.springframework.context.annotation.Bean +import org.springframework.context.annotation.Configuration +import org.springframework.context.annotation.Import +import springfox.bean.validators.configuration.BeanValidatorPluginsConfiguration +import springfox.documentation.builders.ApiInfoBuilder +import springfox.documentation.builders.PathSelectors +import springfox.documentation.builders.RequestHandlerSelectors +import springfox.documentation.service.ApiInfo +import springfox.documentation.service.Contact +import springfox.documentation.spi.DocumentationType +import springfox.documentation.spring.web.plugins.Docket +import springfox.documentation.swagger2.annotations.EnableSwagger2 + +@Configuration +@EnableSwagger2 +@EnableKnife4j +@Import(BeanValidatorPluginsConfiguration::class) +open class SwaggerConfig { + @Bean + open fun api(): Docket { + return Docket(DocumentationType.SWAGGER_2) + .apiInfo(apiInfo()) + .pathMapping("/") + .select() + .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation::class.java)) + .paths(PathSelectors.regex("/.*")) + .build() + + } + + private fun apiInfo(): ApiInfo { + return ApiInfoBuilder().title("Api Document") + .contact(Contact("rainerosion", "http://timemail.email", "admin@rainss.cn")) + .description("这是Knife4j生成的接口文档") + .termsOfServiceUrl("https://git.rainss.cn/timemail/timemail-service") + .license("The Apache License, Version 2.0") + .licenseUrl("http://www.apache.org/licenses/LICENSE-2.0.html") + .version("v1.0") + .build() + } +} \ No newline at end of file