欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

SSM+swagger集成

程序员文章站 2022-06-13 19:51:41
...
自动前后端分离之后,后端的开发压力小了,但是调试很麻烦。借用swagger工具可以很轻松的生成接口调试页面,以下就是swagger集成的过程。

一、pom.xml引入依赖包
<!-- Swagger -->
<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger2</artifactId>
    <version>2.7.0</version>
</dependency>

<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger-ui</artifactId>
    <version>2.7.0</version>
</dependency>

二、创建配置类
@Configuration
@EnableSwagger2
@EnableWebMvc
public class Swagger2Config{

	@Value("${swagger.show:false}")
	private boolean swaggerShow;
	
	@Bean
    public Docket api() {
        return new Docket(DocumentationType.SWAGGER_2)
        		.enable(swaggerShow)
                .select()
                .apis(RequestHandlerSelectors.any())
                .build()
                .apiInfo(apiInfo());
    }

    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                .title("UCT项目接口文档")
                .description("UCT项目接口测试")
                .version("1.0.0")
                .termsOfServiceUrl("")
                .license("")
                .licenseUrl("")
                .build();
    }
	
}

三、配置spring-mvc.xml文件
<--增加-->
<!-- 引入swagger相关 ,注意静态资源文件映射是否打开-->
    <bean class="cn.gov.zjport.uct.swagger.Swagger2Config" />
	
    <mvc:resources mapping="/swagger-ui.html" location="classpath:/META-INF/resources/" />
    <mvc:resources mapping="/webjars/**" location="classpath:/META-INF/resources/webjars/" />

<!-- 在一些拦截器中,排除swagger相关内容  -->
<mvc:interceptors>  
	    <mvc:interceptor>       
	        <mvc:mapping path="/**"/>
	        <mvc:exclude-mapping path="/swagger-ui.html"/>
	        <mvc:exclude-mapping path="/swagger-resources/**"/>
	        <mvc:exclude-mapping path="/webjars/**"/>
	        <ref bean="permissionHandlerInterceptor" />  
	    </mvc:interceptor>  
	</mvc:interceptors>

四、暴露api
1. 在类上添加api注解
@Api(tags="用户管理接口文档")

2. 在方法上添加ApiOperation注解
@ApiOperation(value="新增用户信息", httpMethod="POST")
@RequestMapping("/user")
@RestController
@Api(tags="用户管理接口文档")
public class UserController extends BaseController{

/**
     * 修改用户
     * @param user User对象
     */
    @RequestMapping("/updateUser")
    @ApiOperation(value="修改用户信息", httpMethod="POST")
    public JsonResult updateUser(User user){
    	user.setOrgId(this.getOrgId());
        JsonResult jsonResult = new JsonResult();
        
        if(StringUtils.isEmpty(user.getDepartmentIds()) || UctConstant.NULL_DEPARTMENT_ID.equals(user.getDepartmentIds())){
        	jsonResult.setSuccess(false);
    		jsonResult.setMessage("部门不能为空.");
    		return jsonResult;
        }
        
        if(StringUtils.isEmpty(user.getPositionCodes())){
        	jsonResult.setSuccess(false);
    		jsonResult.setMessage("岗位不能为空.");
    		return jsonResult;
        }
        
        if(StringUtils.isEmpty(user.getEmail())){
        	jsonResult.setSuccess(false);
    		jsonResult.setMessage("邮箱不能为空.");
    		return jsonResult;
        }
        ...
}

}



五、访问接口
http://localhost:8080/uct-webapp/swagger-ui.html


注意事项:
1. 在web.xml里,springMVC的url-patten必须至少有一个是 / 模式
<servlet-mapping>
        <servlet-name>SpringMVC</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>
相关标签: swagger