什么是Swagger?
swagger是一个在线文档工具,在前后端分离的情况下作用愈加突出,使用swagger我们可以针对我们在后端的接口做一个在线测试。
多项目下如何只在一个项目配置swagger?
按照一般的惯例,微服务模块下我们一般会选取某个模块作为公共模块,以便于做一个共性的配置,swagger的配置也是一样。
注意:本文章的配置是基于Swagger2 的2.7.0版本讲解!!!
1.首先在公共配置模块的config中定义swagger的配置类。
@Configuration
@EnableSwagger2
public class BaseSwaggerConfigurer {
public static final String TAG_1 = "tag1";
public static final String TAG_2 = "tag2";
public static final String TAG_3 = "tag3";
public String myPackage = "com.system.controller";
public String title = "接口文档";
public void setMyPackage(String myPackage) {
this.myPackage = myPackage;
}
public void setTitle(String title){
this.title = title;
}
@Bean
public Docket productApi() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
//这里的地址和controller一定要对应上
.paths(Predicates.and(PathSelectors.regex("/admin/.*")))
.build();
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder().title(title).version("1.0.0").contact(new Contact("swagger文档", "https://www.yswg.com.cn/", "1106774637@qq.com")).build();
}
}
-
只要配置好了上面这个配置类就基本上就完成了一半了,主要要在每个子模块中引入这个公共模块的坐标,然后再需要用到swagger的子模块中的项目启动类中加入@ComponentScan这个注解。这个注解的路径要取每个模块的公共路径!
@SpringBootApplication @EnableTransactionManagement @MapperScan("com.yswg.system.mapper.*") @ComponentScan("com.yswg") public class SystemApplication { public static void main(String[] args) { SpringApplication.run(com.yswg.system.SystemApplication.class, args); } }
这样一来就大公告成了!!!
Swagger汉化
swagger在线文档默认就是英文的,汉化的基本原理就是重写一个html去覆盖原本的html,具体操作如下:
一、在引入swagger的模块中的resource目录下新建一个METE-INF,并创建一个swagger-ui.html,目录结构如下:
2.找到我们项目中所引入的jar包,将这个html文档中的内容复制到我们新建的html中。
3.在我们复制进来的swagger-ui.html中新加入以下代码引入国际版的swagger页面
<!-- 加入国际化的js -->
<script src="webjars/springfox-swagger-ui/lang/translator.js" type="text/javascript"></script>
<script src="webjars/springfox-swagger-ui/lang/zh-cn.js" type="text/javascript"></script>
完结撒花!!!!