Swagger
简要说明
将Swagger和Swagger UI集成到系统中,可以实现接口可视化界面操作。
版本号
- Swagger UI 2.2.10
- 高于该版本,可能会出现“No operations defined in spec”错误
- 下载地址:https://github.com/swagger-api/swagger-ui/tree/v2.2.10
Swagger UI 配置
下载后解压,将dist目录下的文件拷贝到工程中,这里在static目录下新建了一个swagger-2.2.10文件夹。

静态资源映射
这里放置到静态资源加载目录中,在spring配置文件中开发许可路径即可,这里使用的jeesite快速开发平台,已经对static目录做了设置。
<!-- 静态资源映射 -->
    <mvc:resources mapping="/static/**" location="/static/" cache-period="31536000"/>
Pom 配置文件
前3个是swagger的必须jar包,后面几个根据你当前框架中是否使用到了再进行补充。
<!-- Swagger -->  
        <dependency>    
            <groupId>com.mangofactory</groupId>    
            <artifactId>swagger-springmvc</artifactId>    
            <version>1.0.2</version>    
        </dependency> 
        <dependency>  
        <groupId>com.mangofactory</groupId>  
            <artifactId>swagger-models</artifactId>  
            <version>1.0.2</version>  
        </dependency>  
        <dependency>  
            <groupId>com.wordnik</groupId>  
            <artifactId>swagger-annotations</artifactId>  
            <version>1.3.11</version>  
        </dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.5.4</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>2.5.4</version>
</dependency>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>15.0</version>
</dependency>
<dependency>
<groupId>com.fasterxml</groupId>
<artifactId>classmate</artifactId>
<version>1.1.0</version>
</dependency>
Swagger 配置文件
这里需要注意的是,可以通过两种方式进行配置,这里使用的是注解的方式,如果不使用注解的方式配置需要在Spring配置文件中进行声名。
package com.thinkgem.jeesite.common.config;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
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;
@Configuration  
@EnableSwagger  
@EnableWebMvc  
@ComponentScan(basePackages ={"com.thinkgem.jeesite.modules.blog.web"})
public class SwaggerConfig {
    
    private SpringSwaggerConfig springSwaggerConfig;  
      
    /** 
     * Required to autowire SpringSwaggerConfig 
     */  
    @Autowired  
    public void setSpringSwaggerConfig(SpringSwaggerConfig springSwaggerConfig)  
    {  
        this.springSwaggerConfig = springSwaggerConfig;  
    }  
  
    /** 
     * Every SwaggerSpringMvcPlugin bean is picked up by the swagger-mvc 
     * framework - allowing for multiple swagger groups i.e. same code base 
     * multiple swagger resource listings. 
     */  
    @Bean  
    public SwaggerSpringMvcPlugin customImplementation()  
    {  
        return new SwaggerSpringMvcPlugin(this.springSwaggerConfig)  
                .apiInfo(apiInfo())
                .includePatterns(".*")  
                .swaggerGroup("XmPlatform")  
                .apiVersion("1.0.0");  
    }  
    
    private ApiInfo apiInfo()  
    {  
        ApiInfo apiInfo = new ApiInfo(  
                "springmvc搭建swagger",  
                "spring-API swagger测试",  
                "My Apps API terms of service",  
                "469088624@qq.com",  
                "web app",  
                "My Apps API License URL");  
        return apiInfo;  
    }  
}
这里值得注意的是,以下代码为自动扫描装载位置,多个包用英文逗号分割。
@ComponentScan(basePackages ={"com.thinkgem.jeesite.modules.blog.web","com.thinkgem.jeesite.modules.blog.sys"})
Swagger UI index.html文件配置
修改Swagger下的index.html文件,这里值得注意的是判断表达式else后的url设置。
- 配置为“项目访问地址”+/api-docs即可 
- 这里因为放在static目录下所以采用js表达式处理了一下 - Swagger UI 
测试访问
输入:http://localhost:18080/jeesite/static/swagger-2.2.10/index.html
对应:http://localhost:18080/jeesite/api-docs
或者:http://192.168.1.222:18080/jeesite/static/swagger-2.2.10/index.html
对应:http://192.168.1.222:18080/jeesite/api-docs
均可访问成功,但需要注意的是index.html中设置的url前缀必须于访问地址前缀一致。


 
  
  
  
 
 
  
 
 
 