目的: 生成接口文档
一、swagger 集成 spring mvc
1.1 添加依赖
<!--swagger -->
<dependency>
<groupId>com.mangofactory</groupId>
<artifactId>swagger-springmvc</artifactId>
<version>0.9.5</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.6.0</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.6.0</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>2.6.0</version>
</dependency>
<!--swagger -->
1.2 编写swagger配置类
package cn.com.dhc.ec.web.admin.swagger;
import com.mangofactory.swagger.configuration.SpringSwaggerConfig;
import com.mangofactory.swagger.models.dto.ApiInfo;
import com.mangofactory.swagger.plugin.EnableSwagger;
import com.mangofactory.swagger.plugin.SwaggerSpringMvcPlugin;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
@EnableSwagger
public class SwaggerConfig {
private SpringSwaggerConfig springSwaggerConfig;
@Autowired
public void setSpringSwaggerConfig(SpringSwaggerConfig springSwaggerConfig) {
this.springSwaggerConfig = springSwaggerConfig;
}
@Bean
public SwaggerSpringMvcPlugin customImplementation() {
return new SwaggerSpringMvcPlugin(this.springSwaggerConfig).apiInfo(apiInfo()).includePatterns(".*?");
}
private ApiInfo apiInfo() {
ApiInfo apiInfo = new ApiInfo(
"文档说明",
"api", "", "", "V1.0.0", "");
return apiInfo;
}
}
1.3 在springmvc配置文件中声明swagger配置类
<!--swagger 接口文档静态资源,,swagger-ui 文件就放在这目录下-->
<mvc:resources mapping="/resources/**" location="/resources/" />
<bean class="com.mangofactory.swagger.configuration.SpringSwaggerConfig" />
<bean class="swagger配置类路径.SwaggerConfig" />
1.4 使用swagger-ui
下载地址:github.com/swagger-api… ui版本选择,把dist目录下文件放在静态资源中。静态路径如1.3配置
1.5 修改显示UI
swagger/index.html 默认是http://petstore.swagger.io/v2/swagger.json 修改为自己的路径。 在index.html 中加如下:
//获取文档路径
function getDocUrl(){
//获取当前网址
var curWwwPath=window.document.location.href;
//获取主机地址之后的目录
var pathName=window.document.location.pathname;
var pos=curWwwPath.indexOf(pathName);
//获取主机地址
var localhostPaht=curWwwPath.substring(0,pos);
//获取带"/"的项目名
var projectName=pathName.substring(0,pathName.substr(1).indexOf('/')+1);
//主机地址加上项目名字
var docUrl =localhostPaht+projectName+"/api-docs";
return docUrl;
}
$(function () {
var url = window.location.search.match(/url=([^&]+)/);
if (url && url.length > 1) {
url = decodeURIComponent(url[1]);
} else {
url = getDocUrl();//修改得到文档路径
}``
修改语言,默认是英文。在index.html 修改如下
<!-- Some basic translations -->
<script src='lang/translator.js' type='text/javascript'></script>
<!-- <script src='lang/ru.js' type='text/javascript'></script> -->
<script src='lang/zh-cn.js' type='text/javascript'></script>