后端整合 Swagger + Knife4j 接口文档

发布时间 2023-04-26 21:19:12作者: AI未来10Y

接口文档:

个人理解的就是后端提供给前端,供前端查看了解数据结构,是前后端联调的基础。

Swagger + Knife4j:

  1. 引入依赖:
        <!--添加swagger的依赖-->
        <dependency>
            <groupId>com.github.xiaoymin</groupId>
            <artifactId>knife4j-spring-boot-starter</artifactId>
            <version>2.0.7</version>
        </dependency>

2.自定义Swagger配置类

/**
 * @author nami
 */
@Configuration
@EnableSwagger2WebMvc
@Profile({"dev", "test"})
public class SwaggerConfig {

    @Bean(value = "defaultApi2")
    public Docket defaultApi2() {
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                .select()
                // 这里一定要标注你控制器的位置
                .apis(RequestHandlerSelectors.basePackage("com.nami404.scaffold.controller"))
                .paths(PathSelectors.any())
                .build();
    }

    /**
     * api 信息
     * @return
     */
    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                .title("Nami404 scaffold")
                .description("Nami404 scaffold接口文档")
                .termsOfServiceUrl("https://github.com/nami404/")
                .contact(new Contact("Nami404","https://github.com/nami404/","xxx@qq.com"))
                .version("1.0")
                .build();
    }
}

3.确定生成接口文档的接口位置
将自己项目中controller路径替换上面代码"com.yupi.yupao.controller"。

4.注意:线上环境注意不要暴露自己的接口!
通过在SwaggerConfig配置类文件添加注解@Profile({"dev", "test"}),里面的值可以是列表形式,如前面所示;也可以是单独一个字符串,如@Profile("dev")

注意点

如果springboot的版本>=2.6,application.yml配置文件中需要添加如下配置:

spring:
  mvc:
  	pathmatch:
      matching-strategy: ANT_PATH_MATCHER

官方地址:

https://doc.xiaominfo.com/

结果演示:
主页: