SSM框架基于swagger2实现API管理
swagger官网:
https://swagger.io/docs/
1.添加maven依赖
<!--swagger-->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>${swaggger.version}</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>${swaggger.version}</version>
</dependency>
2.下载swagger
https://swagger.io/download-swagger-ui/
3.配置SwaggerConfig
/**
* @Author: CatalpaFlat
* @Descrition:
* @Date: Create in 11:26 2017/11/14
* @Modified BY:
*/
@EnableWebMvc
@EnableSwagger2
@Configuration
@ComponentScan(basePackages ="com.chen")
public class SwaggerConfig extends WebMvcConfigurationSupport {
@Bean
public Docket createRestApi() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
.apis(RequestHandlerSelectors.basePackage("com.chen"))
.paths(PathSelectors.any())
.build();
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("SSM-Swagger2 APIs")
.termsOfServiceUrl("http://blog.csdn.net/dushiwodecuo")
.contact(new Contact("CatalpaFlat","http://blog.csdn.net/dushiwodecuo","1013427541@qq.com"))
.version("1.0.0")
.build();
}
}
4.修改swagger2附带的index.html
修改index.html中的 http://petstore.swagger.wordnik.com/v2/swagger.json修改为自己项目路径+api-docs,
例如:http://localhost:8080/api/api-docs
5.注解使用
@RequestMapping
@RestController
@Api(description="测试接口")
public class TestController {
@Resource
private TestService testService;
@GetMapping(value = "get")
@ApiOperation(value = "获取值",httpMethod = HttpMethod.GET,response = List.class,notes ="get name")
public List<Test> get(){
return testService.get();
}
@ApiOperation(value = "设置值",httpMethod = HttpMethod.GET,response = String.class,notes ="set name")
@ApiImplicitParam(value = "name",dataType = "form",required = true,defaultValue = "21378127")
@GetMapping(value = "set/{name}",consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE)
public String set(@PathVariable String name){
return testService.set(name);
}
}
5.启动测试
浏览器地址栏输入:http://localhost:8080/api/index.html
[图片上传失败...(image-6756d0-1510640523857)]
6.swagger2常用注解如下
- @Api()用于类;
表示标识这个类是swagger的资源 - @ApiOperation()用于方法;
表示一个http请求的操作 - @ApiParam()用于方法,参数,字段说明;
表示对参数的添加元数据(说明或是否必填等) - @ApiModel()用于类
表示对类进行说明,用于参数用实体类接收 - @ApiModelProperty()用于方法,字段
表示对model属性的说明或者数据操作更改 - @ApiIgnore()用于类,方法,方法参数
表示这个方法或者类被忽略 - @ApiImplicitParam() 用于方法
表示单独的请求参数 - @ApiImplicitParams() 用于方法,包含多个 @ApiImplicitParam