Skip to content

Commit

Permalink
✨add pangu ready swagger module
Browse files Browse the repository at this point in the history
  • Loading branch information
yuebaix committed Sep 4, 2021
1 parent 48ae6be commit 2968ec9
Show file tree
Hide file tree
Showing 10 changed files with 100 additions and 4 deletions.
4 changes: 4 additions & 0 deletions docs/draft.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# 草稿文档

- [Swagger-OpenApi - http://localhost:8080/swagger-ui/](http://localhost:8080/swagger-ui/)
- [Swagger-knife4j - http://localhost:8080/doc.html](http://localhost:8080/doc.html)
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
package com.yuebaix.pangu.core;

public interface PanGuCoreConst {
String AUTHOR_NAME = "yuebaix";
String AUTHOR_EMAIL = "yuebaix@outlook.com";
String AUTHOR_GITHUB = "https://github.com/yuebaix";
String TRACE_ARROW = " ---> ";
String PAN_GU_TRACE_PREFIX = "### PanGu ###" + TRACE_ARROW;
}
3 changes: 3 additions & 0 deletions pangu-ready-spring-boot-starter/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -18,5 +18,8 @@ dependencies {
testCompileOnly 'org.projectlombok:lombok'
testAnnotationProcessor 'org.projectlombok:lombok'

implementation 'io.springfox:springfox-boot-starter:3.0.0'
implementation "com.github.xiaoymin:knife4j-spring-ui:3.0.2"

api project(':pangu-spring-boot-starter')
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,23 @@

import com.yuebaix.pangu.core.PanGuCoreConst;
import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;

import javax.annotation.PostConstruct;

@ConditionalOnProperty(
value = PanGuReadyStarterConst.PAN_GU_READY_STARTER_ENABLED,
havingValue = "true",
matchIfMissing = true
)
@Configuration
@Import({SwaggerAutoConfiguration.class})
@Slf4j
public class PanGuReadyAutoConfiguration {
@PostConstruct
public void postInit() {
log.info(PanGuCoreConst.PAN_GU_TRACE_PREFIX + "PanGuReady Initialized");
log.info(PanGuCoreConst.PAN_GU_TRACE_PREFIX + "PanGu Ready Initialized");
}
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,8 @@
package com.yuebaix.pangu.ready;

public interface PanGuReadyStarterConst {
String PAN_GU_READY_STARTER_ENABLED = "pangu.readystarter.enabled";
String PAN_GU_READY_STARTER_SWAGGER_ENABLED = "pangu.readystarter.swagger.enabled";

String PAN_GU_READY_STARTER_VERSION = "1.0";
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
package com.yuebaix.pangu.ready;

import com.yuebaix.pangu.core.PanGuCoreConst;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.context.annotation.Bean;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.oas.annotations.EnableOpenApi;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;

import javax.annotation.PostConstruct;

@ConditionalOnProperty(
value = PanGuReadyStarterConst.PAN_GU_READY_STARTER_SWAGGER_ENABLED,
havingValue = "true",
matchIfMissing = true
)
@EnableOpenApi
@Slf4j
public class SwaggerAutoConfiguration {
@PostConstruct
public void postInit() {
log.info(PanGuCoreConst.PAN_GU_TRACE_PREFIX + "PanGu Ready Swagger Initialized");
}

@Bean("DefaultDocket")
@ConditionalOnMissingBean(Docket.class)
public Docket defaultDocket() {
return new Docket(DocumentationType.OAS_30)
.groupName("default")
.apiInfo(apiInfo())
.useDefaultResponseMessages(false)
//.pathMapping(socialGraphServiceProperties.getContextPath())
.select()
//扫描注解了@ApiOperation的方法生成API接口文档
.apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))
.paths(PathSelectors.any())
.build();
}

private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("ApiDoc")
.contact(new Contact(PanGuCoreConst.AUTHOR_NAME, PanGuCoreConst.AUTHOR_GITHUB, PanGuCoreConst.AUTHOR_EMAIL))
.version(PanGuReadyStarterConst.PAN_GU_READY_STARTER_VERSION)
.description("ApiDoc generated by pangu-ready-spring-boot-starter")
.build();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
import javax.annotation.PostConstruct;

@ConditionalOnProperty(
value = PanGuStarterConst.PANGU_STARTER_ENABLED,
value = PanGuStarterConst.PAN_GU_STARTER_ENABLED,
havingValue = "true",
matchIfMissing = true
)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
package com.yuebaix.pangu.autoconfigure.common;

public interface PanGuStarterConst {
String PANGU_STARTER_ENABLED = "pangu.starter.enabled";
String PAN_GU_STARTER_ENABLED = "pangu.starter.enabled";
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
package com.yuebaix.pangu.test.controller.demo;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/demo/test")
public class TestController {

@GetMapping("/check")
public String check() {
return "success";
}
}
5 changes: 4 additions & 1 deletion pangu-test/src/main/resources/application.properties
Original file line number Diff line number Diff line change
@@ -1,2 +1,5 @@
#pangu.starter.enabled=false
logging.level.com.yuebaix.pangu = debug
#pangu.readystarter.enabled = false
#pangu.readystarter.swagger.enabled = false

logging.level.com.yuebaix.pangu = debug

0 comments on commit 2968ec9

Please sign in to comment.