Spring Cloud 学习笔记十五:搭建微服务工程之Knife4j 介绍及使用

目录

Knife4j 介绍及使用


Knife4j 介绍及使用

Knife4j的前身是swagger-bootstrap-ui,前身swagger-bootstrap-ui是一个纯swagger-uiui皮肤项目。具体介绍见官方文档 https://doc.xiaominfo.com/knife4j/documentation/description.html

pom.xml中引入 Knife4j 的依赖包,代码如下:

<!-- knife4j导出swagger文档 -->
<dependency>
    <groupId>com.github.xiaoymin</groupId>
    <artifactId>knife4j-spring-boot-starter</artifactId>
    <version>3.0.2</version>
</dependency>

Swagger3Config配置类添加 @EnableKnife4j注解:

@Configuration
@EnableOpenApi
@EnableKnife4j
public class Swagger3Config {
...
}

重启服务,访问 http://localhost:8081/doc.html,可以看到界面。

增强模式

Knife4j 自 2.0.6 版本开始,将目前在 UI 界面中一些个性化配置剥离,开发者可以在后端进行配置。

在配置文件中,完整的配置如下:

knife4j:
  enable: true
  documents:
    -
      group: 1.x
      name: 接口签名
      locations: classpath:/*
  setting:
    language: zh-CN
    enableSwaggerModels: true
    enableDocumentManage: true
    swaggerModelName: 实体类列表
    enableVersion: false
    enableReloadCacheParameter: false
    enableAfterScript: true
    enableFilterMultipartApiMethodType: POST
    enableFilterMultipartApis: false
    enableRequestCache: true
    enableHost: false
    enableHostText: localhost:8081
    enableHomeCustom: false
    homeCustomLocation: classpath:markdown/home.md
    enableSearch: true
    enableFooter: false
    enableFooterCustom: true
    footerCustomContent: Apache License 2.0 | Copyright  2021-[stary1993码云](https://gitee.com/stary1993)
    enableDynamicParameter: false
    enableDebug: true
    enableOpenApi: true
    enableGroup: true
  cors: false
  production: false
  basic:
    enable: true
    username: admin
    password: 123456

在以前的版本中,开发者需要在配置文件中手动使用 @EnableKnife4j 来使用增强,自 2.0.6 版本后,只需要在配置文件中配置 knife4j.enable=true 即可不在使用注解。

注意:要使用 Knife4j 提供的增强,knife4j.enable=true必须开启

各个配置属性说明如下:

属性默认值说明值
knife4j.enablefalse是否开启 Knife4j 增强模式
knife4j.corsfalse是否开启一个默认的跨域配置,该功能配合自定义 Host 使用
knife4j.productionfalse是否开启生产环境保护策略,详情参考文档
knife4j.basic对 Knife4j 提供的资源提供 BasicHttp 校验,保护文档
knife4j.basic.enablefalse关闭 BasicHttp 功能
knife4j.basic.usernamebasic 用户名
knife4j.basic.passwordbasic 密码
knife4j.documents自定义文档集合,该属性是数组
knife4j.documents.group所属分组
knife4j.documents.name类似于接口中的 tag,对于自定义文档的分组
knife4j.documents.locationsmarkdown文件路径,可以是一个文件夹(classpath:markdowns/*),也可以是单个文件(classpath:md/sign.md)
knife4j.setting前端 UI 的个性化配置属性
knife4j.setting.enableAfterScripttrue调试 Tab 是否显示 AfterScript 功能,默认开启
knife4j.setting.languagezh-CNUI 默认显示语言,目前主要有两种:中文(zh-CN)、英文(en-US)
knife4j.setting.enableSwaggerModelstrue是否显示界面中 SwaggerModel 功能
knife4j.setting.swaggerModelNameSwagger Models重命名 SwaggerModel 名称,默认
knife4j.setting.enableDocumentManagetrue是否显示界面中"文档管理"功能
knife4j.setting.enableReloadCacheParameterfalse是否在每个 Debug 调试栏后显示刷新变量按钮,默认不显示
knife4j.setting.enableVersionfalse是否开启界面中对某接口的版本控制,如果开启,后端变化后 UI 界面会存在小蓝点
knife4j.setting.enableRequestCachetrue是否开启请求参数缓存
knife4j.setting.enableFilterMultipartApisfalse针对 RequestMapping 的接口请求类型,在不指定参数类型的情况下,如果不过滤,默认会显示 7 个类型的接口地址参数,如果开启此配置,默认展示一个 Post 类型的接口地址
knife4j.setting.enableFilterMultipartApiMethodTypePOST具体接口的过滤类型
knife4j.setting.enableHostfalse是否启用 Host
knife4j.setting.enableHomeCustomfalse是否开启自定义主页内容
knife4j.setting.homeCustomLocation主页内容 Markdown 文件路径
knife4j.setting.enableSearchfalse是否禁用 UI 界面中的搜索框
knife4j.setting.enableFootertrue是否显示 Footer,如果要自定义的话该属性必须设置为false,否则不会生效
knife4j.setting.enableFooterCustomfalse是否开启自定义 Footer
knife4j.setting.footerCustomContentfalse自定义 Footer 内容
knife4j.setting.enableDynamicParameterfalse是否开启动态参数调试功能
knife4j.setting.enableDebugtrue启用调试
knife4j.setting.enableOpenApitrue显示 OpenAPI 规范
knife4j.setting.enableGrouptrue显示服务分组

关于个性化文档(knife4j.documents)以及个性化设置(knife4j.setting),有一些细微的区别,开发者在配置文件中进行配合好后,还需要在创建Docket对象时调用Knife4j提供的扩展Extesions进行赋值,示例代码如下:

/*引入Knife4j提供的扩展类*/
@Autowired
private OpenApiExtensionResolver openApiExtensionResolver;
/**
     * 创建 API 1.x
     */
    @Bean
    public Docket createRestApi1() {
        String groupName = "1.x";
        return new Docket(DocumentationType.OAS_30)
               ...
                //赋予插件体系
                .extensions(openApiExtensionResolver.buildExtensions(groupName));
    }

具体其他使用设置参考官方文档:https://doc.xiaominfo.com/knife4j/documentation/

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

stary1993

你的鼓励是我创作的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值