Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。
Swagger是接口文档 官网地址:https://swagger.io/
Knife4J文档地址:https://doc.xiaominfo.com/
废话 不多说,开始
整合操作
Maven
<!-- swagger2 可以通过 项目名称+/swagger-ui.html 访问具体页面-->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.7.0</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.7.0</version>
</dependency>
<!--整合Knife4j swagger皮肤-->
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>knife4j-spring-boot-starter</artifactId>
<version>2.0.4</version>
</dependency>
添加个 配置类 吧 这里同时开启了swagger 与 knif4
import com.github.xiaoymin.knife4j.spring.annotations.EnableKnife4j;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
/**
* @Author: 臧立昆
* @Email: 740969606@qq.com
* @Date: 2020/7/29
* @Time: 15:33
*/
@Configuration //配置类
@EnableSwagger2 //启用Swagger2
@EnableKnife4j //开启swagger 新皮肤
public class Swagger2Config {
@Bean
public Docket apiConfig() {
return new Docket(DocumentationType.SWAGGER_2)//创建Swagger2类型的文档
.apiInfo(apiInfo())
.groupName("臧立昆")
.enable(true)
.host("HOST");//apiInfo方法返回配置的接口信息
}
@Bean
public Docket Group1() {
return new Docket(DocumentationType.SWAGGER_2)//创建Swagger2类型的文档
.apiInfo(apiInfo())
.groupName("Group1")
.enable(false)
.host("HOST");//apiInfo方法返回配置的接口信息
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("GovbuyCrm")//接口标题
.description("2020年10月15日项目启动,用于商务组的客户管理系统")//接口描述
.version("1.0")//接口版本
.contact(new Contact("ZLK", "https://www.zanglikun.com", "zanglikun@163.com"))//联系方式:名字、网址、邮箱
.build();
}
注解 实际操作
我们 实际只需要操作的地方 只有 4 个
- controller类
- controller方法
- 实体类
- 请求参数
controller类 上加:@Api(tags = "XXXController")
controller方法 上加: @ApiOperation(value = "子接口XXX",notes = "备注信息")
实体类 加: @ApiModel(value = "实体类配置了在Swagger Models文档中不一定能看不到吗,);
实体类 无法在Swagger Models文档 看到解决办法:
随便写一个 方法,返回这个对象就能在 Swagger Models文档 看到了
@GetMapping("/随便起")
domain showUserModel(){
return new domain();
}
就可以看到了
请求参数 上加 :@ApiParam(value = "用户名")
对于一些从 HttpServletRequest获取的参数,是不被Swagger识别的,
@ApiImplicitParams({
@ApiImplicitParam(name = "参数名", value = "注释信息", dataType = "提交方式"),
@ApiImplicitParam(name = "参数名", value = "注释信息", dataType = "提交方式")
})
最终结果
最后,我们就需要我们项目请求路径 + doc.html 就是 Knife4j的地址
而单纯的 swagger 请访问 项目请求路径 + swagger-ui.html
特殊说明:
上述文章均是作者实际操作后产出。烦请各位,请勿直接盗用!转载记得标注原文链接:www.zanglikun.com
第三方平台不会及时更新本文最新内容。如果发现本文资料不全,可访问本人的Java博客搜索:标题关键字。以获取最新全部资料 ❤
第三方平台不会及时更新本文最新内容。如果发现本文资料不全,可访问本人的Java博客搜索:标题关键字。以获取最新全部资料 ❤
评论(0)