跳到主要内容

如何贡献代码

作为一个开源项目,Knife4j 的成长离不开社区贡献者的支持和参与。我们非常欢迎广大社区用户为 Knife4j 贡献代码、文档或改进网站,在此过程中,我们愿意为您提供必要的支持。

社区贡献

开源贡献

Knife4j仓库结构说明

  • knife4j-desktop:Knife4j的独立中间件,基于Java编写,可以独立运行渲染OpenAPI规范文件
  • knife4j-doc: 官网文档,基于Docusaurus进行编写
  • knife4j-vue: 前端源码,基于Vue2框架编写
  • knife4j: Java端代码,包括所有公开使用的starter组件封装

指导方针

  • 在开始进行功能或者修复Bug之前,事先请在Github、Gitee平台上搜索与之相关的功能是否已经实现,或着也可以通过Github、Gitee平台的issue与我们取得联系。以确保该任务没有其他人在处理,避免重复操作。
  • 所有功能可通过Github或者Gitee的issues进行沟通讨论,避免浪费大家的时间。
  • 如果是重大功能更新,建议你在编码开发的同时,将该功能的设计、思想、实现以及使用说明通过文档进行输出。最好是合并在Knife4j的官方文档上
  • 提交PR时,需要将PR请求提交到dev分支!!!

调试代码

目前knife4j-vue是前端代码,基于Vue2框架编写编写

开发者如果想贡献代码或者自己改造,得启动此项目进行调试

1、环境准备

首先,开发者本地需要安装Node环境,目前该版本的Node依赖比较低,作者本地使用的版本是v15.14.0,可以通过nvm工具切换安装不同的node版本,高版本的Node目前可能会存在问题,保持一致即可

2、安装依赖

执行命令

npm install 

3、后端接口准备

目前Knife4j组件还是以Java生态为主,所以在调试获取OpenAPI数据源时,是根据解析框架做兼容适配,主要是两个框架:

而Knife4j-vue前端代码目前还是比较笨拙的方式,主要体现在knife4j-vue/src/layouts/BasicLayout.vue文件中

create()方法时会存在区别

 created() {
// 调试springdoc框架时,使用该方法,注释下面的this.initKnife4jSpringUi()方法
this.initSpringDocOpenApi();
// 调试springfox框架时,使用该方法,注释上面的 this.initSpringDocOpenApi()方法
//this.initKnife4jSpringUi();
this.initI18n();
},

这种方法在打包构建时,也同样如此

4、服务端代理端口

knife4j-vue/vue.config.js配置文件中,修改proxy节点下的配置

在上面springfox和springdoc两个demo工程下,服务启动后,修改为相应的端口即可

devServer: {
watchOptions: {
ignored: /node_modules/
},
proxy: {
"/": {
// 代理服务端端口
target: 'http://localhost:8990/',
ws: true,
changeOrigin: true
}
}
},