swagger 灰小白的日常--one

255 阅读2分钟

目的: 生成接口文档

一、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>

1.6 打开浏览器地址 http://{ip}:{port}/{projectName}/swagger/index.html