前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SpringBoot: Swagger升级版——knife4j

SpringBoot: Swagger升级版——knife4j

作者头像
Freedom123
发布2024-03-29 14:43:39
930
发布2024-03-29 14:43:39
举报
文章被收录于专栏:DevOpsDevOps

为什么选择knife4j

页面好看,我放两张对比图

图一是knife4j的官网,图二是swagger默认的界面。如果觉得第二章比第一张好看的,可以不用往下看了。

如何使用

贴一下knife4j的官网:https://doc.xiaominfo.com/,里面有详细的介绍,这里只简单的介绍一下如何搭建,先看一下简单的项目结构

1.添加pom文件
代码语言:javascript
复制
<!--整合Knife4j-->
<dependency>
    <groupId>com.github.xiaoymin</groupId>
    <artifactId>knife4j-spring-boot-starter</artifactId>
    <version>3.0.3</version>
</dependency>

Knife4j里面集成了swagger的jar包,所以项目中有一个knife4j的jar包就能使用

2.添加配置文件
代码语言:javascript
复制
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.ApiSelectorBuilder;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;

/**
 * @Author nitric oxide
 * @Description
 * @Date 6:13 下午 2021/11/11
 */
@EnableSwagger2
@Configuration
public class SwaggerConfig {
    @Bean(value = "defaultApi2")
    public Docket defaultApi2() {
        ApiSelectorBuilder builder = new Docket(DocumentationType.SWAGGER_2)
                .enableUrlTemplating(false)
                .apiInfo(apiInfo())
                // 选择那些路径和api会生成document
                .select()
                // 对所有api进行监控
                .apis(RequestHandlerSelectors.any())
                //这里可以自定义过滤
                .paths(this::filterPath);

        return builder.build();
    }

    private boolean filterPath(String path) {
        boolean ret = path.endsWith("/error");
        if (ret) {
            return false;
        }
        //这块可以写其他的过滤逻辑
        return true;
    }

    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                .title("title")
                .description("description")
                .termsOfServiceUrl("https://www.baidu.com")
                .version("1.0")
                .contact(new Contact("nitric oxide", "www.baidu.com", "123@qq.com"))
                .build();
    }
}
3.使用swagger注解标记接口
4.最后访问http://ip:port/doc.html来看接口的效果

其他

最后写一些swagger注解(不过我觉得上面的三个例子已经覆盖了大多数场景了)

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2024-03-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 为什么选择knife4j
  • 如何使用
    • 1.添加pom文件
      • 2.添加配置文件
        • 3.使用swagger注解标记接口
          • 4.最后访问http://ip:port/doc.html来看接口的效果
          • 其他
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档