From 599479777f42309e40324f05cfe804583b9a7883 Mon Sep 17 00:00:00 2001 From: DmitriyMX Date: Thu, 28 Apr 2022 16:12:10 +0300 Subject: [PATCH] WIP --- mirror-web/build.gradle | 4 +++ .../di9/mirror/web/config/SwaggerConfig.java | 27 +++++++++++++++++++ .../web/controller/MavenController.java | 4 +++ mirror-web/src/main/resources/application.yml | 2 +- 4 files changed, 36 insertions(+), 1 deletion(-) create mode 100644 mirror-web/src/main/java/ru/di9/mirror/web/config/SwaggerConfig.java diff --git a/mirror-web/build.gradle b/mirror-web/build.gradle index 8e6187c..d334f2c 100644 --- a/mirror-web/build.gradle +++ b/mirror-web/build.gradle @@ -6,6 +6,10 @@ dependencies { annotationProcessor('org.springframework.boot:spring-boot-configuration-processor') implementation('org.springframework.boot:spring-boot-starter-web') + + implementation(group: 'io.swagger', name: 'swagger-annotations', version: '1.5.21') + implementation(group: 'io.springfox', name: 'springfox-swagger2', version: '2.9.2') + implementation(group: 'io.springfox', name: 'springfox-swagger-ui', version: '2.9.2') } tasks.named('compileJava') { diff --git a/mirror-web/src/main/java/ru/di9/mirror/web/config/SwaggerConfig.java b/mirror-web/src/main/java/ru/di9/mirror/web/config/SwaggerConfig.java new file mode 100644 index 0000000..c6c49ce --- /dev/null +++ b/mirror-web/src/main/java/ru/di9/mirror/web/config/SwaggerConfig.java @@ -0,0 +1,27 @@ +package ru.di9.mirror.web.config; + +import io.swagger.annotations.Api; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.web.servlet.config.annotation.EnableWebMvc; +import springfox.documentation.builders.PathSelectors; +import springfox.documentation.builders.RequestHandlerSelectors; +import springfox.documentation.spi.DocumentationType; +import springfox.documentation.spring.web.plugins.Docket; +import springfox.documentation.swagger2.annotations.EnableSwagger2; + +@Configuration +@EnableSwagger2 +@EnableWebMvc +public class SwaggerConfig { + + @Bean + public Docket api() { + return new Docket(DocumentationType.SWAGGER_2) + .select() + .apis(RequestHandlerSelectors.any()) + .paths(PathSelectors.any()) + .apis(RequestHandlerSelectors.withClassAnnotation(Api.class)) + .build(); + } +} diff --git a/mirror-web/src/main/java/ru/di9/mirror/web/controller/MavenController.java b/mirror-web/src/main/java/ru/di9/mirror/web/controller/MavenController.java index eef5e8c..4e3ddf4 100644 --- a/mirror-web/src/main/java/ru/di9/mirror/web/controller/MavenController.java +++ b/mirror-web/src/main/java/ru/di9/mirror/web/controller/MavenController.java @@ -1,5 +1,7 @@ package ru.di9.mirror.web.controller; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.core.io.InputStreamResource; @@ -23,6 +25,7 @@ import java.util.Optional; @Slf4j @Controller @RequestMapping(path = "/maven") +@Api("API:DOCS") public class MavenController { private final StorageService storageService; @@ -30,6 +33,7 @@ public class MavenController { this.storageService = storageService; } + @ApiOperation("get file") @GetMapping(path = "/{*path}") public ResponseEntity mavenGetFile(@PathVariable("path") String httpPath) { ResponseEntity responseEntity; diff --git a/mirror-web/src/main/resources/application.yml b/mirror-web/src/main/resources/application.yml index 18e838d..636b1bc 100644 --- a/mirror-web/src/main/resources/application.yml +++ b/mirror-web/src/main/resources/application.yml @@ -2,7 +2,7 @@ server: address: 127.0.0.1 port: 8080 -debug: false +debug: true maven: storage: './storage'