Browse Source

activiti swagger-ui

yuedefeng 6 years ago
parent
commit
c0caf3dc27

+ 17 - 1
pom.xml

@@ -444,7 +444,23 @@
             <artifactId>xml-apis</artifactId>
             <version>1.3.04</version>
         </dependency>
-
+        <!--swagger-ui-->
+        <!--<dependency>
+            <groupId>io.springfox</groupId>
+            <artifactId>springfox-swagger2</artifactId>
+            <version>2.9.2</version>
+        </dependency>-->
+        <dependency>
+            <groupId>io.springfox</groupId>
+            <artifactId>springfox-swagger-ui</artifactId>
+            <version>2.8.0</version>
+        </dependency>
+        <!--swagger-ui-beauty-->
+        <dependency>
+            <groupId>com.github.xiaoymin</groupId>
+            <artifactId>swagger-bootstrap-ui</artifactId>
+            <version>1.9.6</version>
+        </dependency>
 
     </dependencies>
 

+ 3 - 2
src/main/java/com/common/workflow/ActiApiApp.java

@@ -5,6 +5,7 @@ import com.common.workflow.config.DefaultProfileUtil;
 
 import io.github.jhipster.config.JHipsterConstants;
 
+import io.github.jhipster.config.apidoc.SwaggerAutoConfiguration;
 import org.activiti.spring.boot.SecurityAutoConfiguration;
 import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
@@ -14,7 +15,6 @@ import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 import org.springframework.boot.autoconfigure.liquibase.LiquibaseProperties;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
-import org.springframework.context.annotation.ComponentScan;
 import org.springframework.core.env.Environment;
 
 import javax.annotation.PostConstruct;
@@ -24,7 +24,8 @@ import java.util.Arrays;
 import java.util.Collection;
 
 @SpringBootApplication
-@EnableAutoConfiguration(exclude = {SecurityAutoConfiguration.class})
+// @EnableAutoConfiguration(exclude = {SecurityAutoConfiguration.class, SwaggerAutoConfiguration.class})
+@EnableAutoConfiguration(exclude = {SecurityAutoConfiguration.class, SwaggerAutoConfiguration.class})
 @EnableConfigurationProperties({LiquibaseProperties.class, ApplicationProperties.class})
 public class ActiApiApp {
 

+ 61 - 0
src/main/java/com/common/workflow/config/Swagger2Configuration.java

@@ -0,0 +1,61 @@
+package com.common.workflow.config;
+
+import io.swagger.annotations.Api;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import springfox.documentation.builders.ApiInfoBuilder;
+import springfox.documentation.builders.ParameterBuilder;
+import springfox.documentation.builders.PathSelectors;
+import springfox.documentation.builders.RequestHandlerSelectors;
+import springfox.documentation.schema.ModelRef;
+import springfox.documentation.service.ApiInfo;
+import springfox.documentation.service.Parameter;
+import springfox.documentation.spi.DocumentationType;
+import springfox.documentation.spring.web.plugins.Docket;
+import springfox.documentation.swagger.web.UiConfiguration;
+import springfox.documentation.swagger.web.UiConfigurationBuilder;
+import springfox.documentation.swagger2.annotations.EnableSwagger2;
+
+import java.util.ArrayList;
+import java.util.List;
+
+@Configuration
+@EnableSwagger2
+public class Swagger2Configuration {
+
+    @Bean
+    public Docket createRestApi() {
+        ParameterBuilder ticketPar = new ParameterBuilder();
+        List<Parameter> pars = new ArrayList<>();
+        ticketPar.name("Authorization").description("认证token")
+                .modelRef(new ModelRef("string")).parameterType("header")
+                .required(false).build(); //header中的ticket参数非必填,传空也可以
+        pars.add(ticketPar.build());    //根据每个方法名也知道当前方法在设置什么参数
+
+        return new Docket(DocumentationType.SWAGGER_2)
+                .apiInfo(apiInfo())
+                .select()
+                .apis(RequestHandlerSelectors.withClassAnnotation(Api.class))//这是注意的代码
+                .paths(PathSelectors.any())
+                .build()
+                .globalOperationParameters(pars);
+
+    }
+
+    private ApiInfo apiInfo() {
+        return new ApiInfoBuilder()
+                .title("大港油田工作流接口文档")
+                .description("Activiti V6.0.0")
+                .termsOfServiceUrl("http://devops.dgyt.petrochina")
+                .version("V6.0.0")
+                .build();
+    }
+
+    //Models 关闭状态
+    @Bean
+    public UiConfiguration uiConfiguration() {
+        return UiConfigurationBuilder.builder().defaultModelsExpandDepth(0)
+                .build();
+    }
+
+}

+ 3 - 0
src/main/java/com/common/workflow/web/rest/ActivitiResource.java

@@ -6,6 +6,8 @@ import com.common.workflow.service.dto.ActiMyTaskDTO;
 import com.common.workflow.service.dto.ActiPageResultDTO;
 import com.common.workflow.service.dto.ActiUserTaskDTO;
 import com.common.workflow.web.rest.vm.*;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiModel;
 import org.activiti.engine.task.Task;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -24,6 +26,7 @@ import java.util.Map;
  */
 @RestController
 @RequestMapping("/api/acti")
+@Api(value = "ActivitiResource", description = "自定义工作流接口", tags = "自定义工作流接口")
 public class ActivitiResource {
     private final Logger log = LoggerFactory.getLogger(ActivitiResource.class);