写在前面:
使用maven管理工程
一、POM配置:
<!-- swagger框架 -->
<dependency>
<groupId>com.mangofactory</groupId>
<artifactId>swagger-springmvc</artifactId>
<version>1.0.2</version>
</dependency>
mavan仓库建议用maven官方,阿里环境无法下载最新相关包,因为要用到关联包,需要推送到私服
mvn install:install-file -Dfile=D:\maven\mvnRespo\com\mangofactory\swagger-models\1.0.2\swagger-models-1.0.2.jar -DgroupId=com.mangofactory -DartifactId=swagger-models -Dversion=1.0.2 -Dpackaging=jar
二、springmvc.xml配置
<!-- swagger配置信息 -->
<bean class="com.mangofactory.swagger.configuration.SpringSwaggerConfig" />
<!-- 跨域处理配置信息 -->
<mvc:cors>
<mvc:mapping path="/**"
allowed-origins="*"
allowed-methods="*"
allowed-headers="*"
allow-credentials="false" />
<mvc:mapping path="/common/**"/>
</mvc:cors>
三、新增配置类
public class SwaggerConfig extends WebMvcConfigurerAdapter{
ApplicationContext ac = new FileSystemXmlApplicationContext("applicationContext.xml");
private SpringSwaggerConfig springSwaggerConfig;
@Autowired
public void setSpringSwaggerConfig(SpringSwaggerConfig springSwaggerConfig) {
this.springSwaggerConfig = springSwaggerConfig;
}
/**
* 链式编程 来定制API样式 后续会加上分组信息
*
* @return
*/
@Bean
public SwaggerSpringMvcPlugin customImplementation(){
return new SwaggerSpringMvcPlugin(this.springSwaggerConfig)
.apiInfo(apiInfo())
.includePatterns(".*?");
}
@Bean
public SpringSwaggerConfig comSpringSwaggerConfig(){
return new SpringSwaggerConfig();
}
private ApiInfo apiInfo() {
ApiInfo apiInfo = new ApiInfo("API接口测试平台",
"提供后台所有Restful接口", "",
"", "", "");
return apiInfo;
}
@Override
public void configureDefaultServletHandling(
DefaultServletHandlerConfigurer configurer) {
configurer.enable();
}
}
四、增加测试controller
package com.qzsoft.fe.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import com.wordnik.swagger.annotations.Api;
import com.wordnik.swagger.annotations.ApiOperation;
import com.wordnik.swagger.annotations.ApiParam;
import com.wordnik.swagger.annotations.ApiResponse;
import com.wordnik.swagger.annotations.ApiResponses;
/*API详细说明
注释汇总
-------------------------------------
作用范围 API 使用位置
对象属性 @ApiModelProperty 用在出入参数对象的字段上
协议集描述 @Api 用于controller类上
协议描述 @ApiOperation 用在controller的方法上
Response集 @ApiResponses 用在controller的方法上
Response @ApiResponse 用在 @ApiResponses里边
非对象参数集 @ApiImplicitParams 用在controller的方法上
非对象参数描述 @ApiImplicitParam 用在@ApiImplicitParams的方法里边
描述返回对象的意义 @ApiModel 用在返回对象类上
-------------------------------------
@RequestMapping此注解的推荐配置
value
method
produces
参考:http://blog.csdn.net/xupeng874395012/article/details/68946676
*/
@Controller
@RequestMapping("swagger")
@Api(description="Swagger展示模型",value = "展示模型")//添加注释
public class SwaggerController {
private static final String SWAGGER_PAGES = "common/static/swagger.jsp";
@ApiOperation(value="接口管理系统页面访问接口")
@ApiResponses({
@ApiResponse(code = 401, message = "资源未经授权的"),
@ApiResponse(code = 403, message = "权限不足"),
@ApiResponse(code = 404, message = "未找到资源"),
@ApiResponse(code = 200, message = "操作成功")
})
@RequestMapping(value="/swagger.do",method=RequestMethod.GET)
public String toJsp(){
return SWAGGER_PAGES;
}
@ApiOperation(value="接口管理系统测试接口")
@ApiResponses({
@ApiResponse(code = 401, message = "资源未经授权的"),
@ApiResponse(code = 403, message = "权限不足"),
@ApiResponse(code = 404, message = "未找到资源"),
@ApiResponse(code = 200, message = "操作成功")
})
@RequestMapping(value="/test.do",method=RequestMethod.GET)
@ResponseBody
public String toTest(@RequestParam(value="userId", required=false) String userId,
@RequestParam(value = "para", required = true) String para){
return userId+"testswagger"+para;
}
}