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博客搜索:标题关键字。以获取最新全部资料 ❤