可以把swagger整合到公共模块,方便使用,但只有一个模块就不用这么麻烦了
第一步引入依赖
<!--swagger-->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<scope>provided </scope>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<scope>provided </scope>
</dependency>
第二步配置类
package com.xu.servicebase;
import com.google.common.base.Predicates;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
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//swagger注解
public class SwaggerConfig {
//swagger插件
@Bean
public Docket webApiConfig(){
return new Docket(DocumentationType.SWAGGER_2)
.groupName("webApi")//组名随便起
.apiInfo(webApiInfo())//自定义的信息
.select()
//在swagger里包含/admin和/error开头的路径不进行显示(可以不写这部分)
.paths(Predicates.not(PathSelectors.regex("/admin/.*")))
.paths(Predicates.not(PathSelectors.regex("/error.*")))
.build();
}
private ApiInfo webApiInfo(){
return new ApiInfoBuilder()
.title("网站-课程中心API文档")
.description("本文档描述了课程中心微服务接口定义")
.version("1.0")
.contact(new Contact("java", "http://atguigu.com",
"55317332@qq.com"))
.build();
}
}
第三步需要将配置类放到容器,在启动类上加上
@ComponentScan(basePackages = {"com.xu"})//扫描包规则
最后通过http://localhost:端口号/swagger-ui.html
如果要在另一个模块用到这个swagger,只需要将这个模块用dependency引入即可
中文提示:
定义在类上 :@Api(description="讲师管理")
定义在方法上:@ApiOperation(value="所有讲师列表")
定义在方法的参数上:@ApiParam(name="id",value="讲师id",require=true)