一.Swagger简介
Swagger是一组围绕OpenAPI规范构建的开源工具,可以帮助你设计、构建、记录和使用REST API。主要的Swagger工具包括:
Swagger Editor:基于浏览器的编辑器,你可以在这里编写OpenAPI规范。
Swagger UI:将OpenAPI规范渲染成交互式的API文档。
Swagger Codegen:从OpenAPI规范中生成服务器存根和客户端库。
二.SSM整合Swagger
1.引入Maven
<dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.6.1</version> </dependency> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</artifactId> <version>2.6.1</version> </dependency>
2.添加SwaggerConfig
package cn.atwangjian.config; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.mvc.method.RequestMappingInfoHandlerMapping; import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping; import springfox.documentation.builders.PathSelectors; import springfox.documentation.builders.RequestHandlerSelectors; import springfox.documentation.spi.DocumentationType; import springfox.documentation.spring.web.plugins.Docket; import springfox.documentation.swagger2.annotations.EnableSwagger2; /** * @author wangjian * @date 2020/5/25 20:01 */ @Configuration @EnableSwagger2 public class SwaggerConfig { @Bean public Docket userApi() { return new Docket(DocumentationType.SWAGGER_2).select().apis(RequestHandlerSelectors.any()) .paths(PathSelectors.any()) .build(); } @Bean public RequestMappingInfoHandlerMapping requestMapping() { return new RequestMappingHandlerMapping(); } }
3.springMvc.xml添加Swagger配置
<!--添加swagger配置--> <!-- 引入swagger相关 --> <bean class="cn.atwangjian.config.SwaggerConfig"/> <!--使用swagger --> <!--<mvc:resources mapping="swagger-ui.html" location="classpath:/META-INF/resources/" />--> <!--使用knife4j --> <mvc:resources mapping="doc.html" location="classpath:/META-INF/resources/" /> <mvc:resources mapping="/webjars/**" location="classpath:/META-INF/resources/webjars/" /> <bean class="springfox.documentation.swagger2.configuration.Swagger2DocumentationConfiguration" id="swagger2Config"/>
三.Swagger效果
访问:http://IP:port/web-obj-name/swagger-ui.html
四.Swagger常用属性
@Api() 用于类;表示标识这个类是swagger的资源 tags–表示说明 value–也是说明,可以使用tags替代 @ApiOperation() 用于方法;表示一个http请求的操作 value用于方法描述 notes用于提示内容 tags可以重新分组 @ApiParam() 用于方法,参数,字段说明;表示对参数的添加元数据(说明或是否必填等) name–参数名 value–参数说明 required–是否必填 @ApiModel() 用于类 ;表示对类进行说明,用于参数用实体类接收 value–表示对象名 description–描述 都可省略 @ApiModelProperty() 用于方法,字段; 表示对model属性的说明或者数据操作更改 value–字段说明 name–重写属性名字 dataType–重写属性类型 required–是否必填 example–举例说明 hidden–隐藏
五.Knife4j简介
knife4j是为集成Swagger生成Api文档的增强解决方案
六.Knife4j核心功能
文档说明
knife4j的列出接口文档的说明,包括接口地址、请求方式、接口描述、请求类型、请求示例、请求参数、响应状态、响应示例等。在线调试
knife4j提供了强大的在线接口调试功能,自动解析当前接口参数,同时包含表单验证,调用参数可返回接口响应内容、Raw、Headers、Curl以及响应耗时等信息。帮助开发者在线调试,而不用通过其他三方工具测试接口是否正确。
七.SSM整合Knife4j
maven中引入jar包
正如knife4j官网介绍所说,如果你是一名Java开发工程师,那么使用swagger-bootstrap-ui将会非常简单,只需要在原使用的基础上,添加swagger-bootstrap-ui的maven引用jar包即可。
<dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.6.1</version> </dependency> <dependency> <groupId>com.github.xiaoymin</groupId> <artifactId>swagger-bootstrap-ui</artifactId> <version>1.9.6</version> </dependency>
2.添加SwaggerConfig配置和springMvc配置
同swagger篇
八.Knife4j效果
访问地址:http://IP:port/web-obj-name/doc.html
1.文档
knife4j为我们写好了接口文档,可以直接复制导出,非常的方便。
2.调试
调试成功:
调试报错都会显示: