Knife4jInsight 1.0.0 MVP 版本发布

news2024/10/1 7:38:01
  • Knife4jInsight 1.0.0 MVP 版本发布
    • 前言
    • 系统用户
    • 平台特性
    • 主要功能
    • 后期计划的功能
      • 平台管理OpenAPI数据源接口文档自动i18n,支持中英双语
      • 微服务OpenAPI规范数据源自动注册上报
      • 整合开源swagger-ui组件,平台中可进行OpenAPI规范接口设计
      • 打通开源注册中心(Nacos\Eureka\Consul等等),获取服务中的OpenAPI数据源
    • 进度计划
      • 计划排期
      • 上线准备
      • 运营推广
    • 最后

Knife4jInsight 1.0.0 MVP 版本发布

前言

大家好,在昨天Knife4jInsight的1.0.0MVP版本发布之后,在Knife4j的交流群分享说,希望Knife4j后面的版本,不管是开源版本还是商业版本,希望以:
开源项目生态+付费产品闭源+Build On Public的模式一直走下去!!!

今天这篇则是践行Build On Public策略,分享在开发Knife4jInsight过程中的一些感悟及想法!

在很早之前分享的Knife4j5.0规划里面,我提到希望重写Knife4j的前端实现,并且能够将工具事项一直发展先去,把Knife4j始终定为一个工具组件,提供一些让开发者在日常文档开发过程中方便使用的功能为先。

而在大概2个月前,我在交流群时常会碰到很多人在问Knife4jInsight开源版本的问题,在之前Knife4jInsight开源版本中,我主要实现了讲各个注册中心进行集成,所有的数据源存储在本地磁盘或者Nacos配置中心作为数据源来存储。我个人认为在思路上是没有什么问题的,但是在产品的使用上,程序员思维太验证了,没有提供一个可操作的界面供用户操作使用,提了一些概念,对用户使用来说,现在回想起来简直是灾难。基于这个想法,加上后面对希望Knife4j改版的热情,就产生了将开源版本Knife4jInsight转换为付费版本的想法。

主要考虑一下几点:

  • 降低之前开源版本Knife4jInsight的使用难度,提供可操作的可视化界面,简化流程和概念
  • 将开源版本中一些无法实现的企业需求都灌注在这个平台版本中进行实现,毕竟这是一个独立运行的平台,可以很好的整合各种业务需求,而Knife4j开源版本是单体组件,碰到很多有意思的需求时,往往会存在瓶颈
  • 商业产品和开源版本共同驱动的模式,开源产品能很好的吸收用户的反馈声音以增强改进软件迭代发展,而商业产品能保证Knife4j这个开源作品使作者获取一些微薄的收入,投入更多的时间去维护项目的开发,我觉得是一种正相关的开发模式,毕竟我们见过太多靠爱发电的开源项目最终都停更了,Knife4j目前也基本是靠爱发电的项目

确定了想法之后,说干就干,最终在Xmind大致罗列了下这个产品最终的具体事项,主要4个方面,如下:

在这里插入图片描述

  • 系统用户:平台既然以OpenAPI规范数据源管理为主,而OpenAPI规范是企业的数字资产,那么用户功能必然必不可少,接口文档是企业的隐私,需要用户权限来限定谁可以访问,谁不可以访问
  • 平台特性:主要是确定平台的特点及功能风格
  • 主要功能:确定确定MVP版本的基础功能
  • 进度计划:开发迭代这个产品需要确定的计划事项

系统用户

平台以OpenAPI规范数据源管理为主,而OpenAPI规范是企业的数字资产,那么用户功能必然必不可少,接口文档是企业的隐私,需要用户权限来限定谁可以访问,谁不可以访问。

在用户层面,以用户和角色进行展开:

  • 用户:平台使用者,可以注册(基于Email)使用的用户,登录后可以维护OpenAPI规范数据源
  • 角色:平台主要分两个角色(平台用户、管理员)
    • 平台用户:角色是平台的最小可用角色,仅可以使用平台
    • 管理者:则可以对用户进行统一管理,在标准版中,会分配1个默认管理者账号,管理者对用户进行创建、禁用、重置密码等操作

平台特性

平台特性主要是确定平台等风格,如下图:

在这里插入图片描述

  • 界面排版:习惯了所有菜单风格的我,这次决定使用一下上下风格的模式
  • 文档访问:对于文档的访问,可以开放鉴权功能,对于需求鉴权的文档,用户访问时则需要校验登录,否则不予访问
  • 数据隔离:每个用户的数据都是相互之间隔离的,只能看到自己的数据

主要功能

主要功能则是在开发MVP版本期间确定的功能以及想到的后期一些扩张功能,如下图:

在这里插入图片描述

  • NameSpache(命名空间):命名空间是平台中抽象的概念,一个namespace下可以允许存在多个OpenAPI规范实例,用户可以讲该功能理解为企业、项目、部门、产品等等
  • **ApiRegister(OpenAPI规范数据源)😗*服务实例是一个OpenAPI规范的最小单元,讲OpenAPI接口规范数据源通过自动注册或手动填报的方式,保存在平台中后即可进行接口文档的在线预览功能
  • **用户中心:**平台用户可以参与OpenAPI文档的建设及授权,用户数据之间完全隔离
  • 授权中心:Knife4jInsight在线版本的功能,对用户购买后的license授权及查看等操作
  • 登录/注册:在线版本保持了基于邮箱账号的注册/找回密码等功能,而在私有化标准版本中,用户的注册等操作没有,需要管理员账号进行开户操作

至于二期功能,则是在开发过程中想到的一些功能点,在xmind中记录,后来我把这些功能又单独在项目的官网文档上进行了维护,主要是产品的RoadMap

官网功能RoadMap地址:http://knife4j.net/roadmap/

后期计划的功能

平台管理OpenAPI数据源接口文档自动i18n,支持中英双语

对于注册上来的OpenAPI数据源,平台基于开放的翻译API接口对OpenAPI结构进行解析,解析完成后自动翻译文档注释说明,这样我觉得企业开发者在做i18n文档国际化时,在代码层面只需要按常规的固定流程开发即可,而无需从代码框架层面实现i18n,整合i18n功能到平台中可以不止做一种语言,后面扩展更多的语言支持也是及其方便的

微服务OpenAPI规范数据源自动注册上报

目前MVP版本还是手动上报填写,但平台已经预留了接口自动上报的函数接口,基于用户的开发密钥,将自动上报功能整合到Knife4j开源的各项starter组件中,开箱即用,即可在项目启动后自动上报OpenAPI规范数据至Insight平台中,这样即可避免各种404、鉴权等集成Knife4j组件的问题,开发者只需要将Insight平台中的文档提供出去即可进行接口对接

整合开源swagger-ui组件,平台中可进行OpenAPI规范接口设计

开源Swagger-editor组件提供了在线设计接口及所见即所得的能力,整合后可以先设计规范接口,后实现代码,后期还可以考虑整合OpenAPI规范生态的代码生成功能,在线提供各种导出、代码生成等功能

打通开源注册中心(Nacos\Eureka\Consul等等),获取服务中的OpenAPI数据源

微服务开发是目前当下主流的开发技术栈,而打通各个注册中心则可以在平台端主动去pull拉取各个子服务的OpenAPI数据源,对于手工填写OpenAPI规范管理提供了便利,和
微服务OpenAPI规范数据源自动注册上报
功能相比,一个是主动pull拉取,而另外一个则是被动推送到Insight平台,是两种策略

进度计划

确定好了功能,那么就是计划排期了

在这里插入图片描述

计划排期

开发一个产品要做的事情针对太多了,首先是确定MVP版本的开发周期

因为作者也是在职,所以不可能全职参与这项工作,只能是利用下班后或周六周日的时间来进行开发,MVP版本也是保证产品的最小可用版本,所以计划的是花1-2个月的时间来完成

以下是GitHub的提交记录,大概从7月份开始有想法之后,开源和产品的迭代基本上是每天一有空闲则进行代码的提交

在这里插入图片描述

上线准备

当项目功能开发完成后,需要做一些上线准备的事情,这里面主要包括:

  • 云服务器:既然有在线试用版本,那么云服务器是跑不了的,在开发技术选型阶段,所有的功能都是以单体架构进行技术选型,后面我会把平台的技术选型分享出来,主要是避免大量中间件的使用,节省资源成本。在云服务器成本上主要是两个:
    • ECS:购买了阿里云的ECS服务器,张家口的节点,2c4GB配置,带宽4M
    • RDS:购买的是腾讯云的MySQL,配置1c1gb,20gb存储,三年648
  • 官网域名:既然是商业化产品,官网域名跑步了,干脆就以开源项目Knife4j进行命名,最后发现.com.cn
    的域名都已经被人注册了😂,最后发现knife4j.net的域名还在,那就自己注册了吧,85RMB/年,net的域名比comcn
    略贵一些,购买域名之后,就是域名备案了,前后大概花了半个月左右吧,备案真的周期太长了
  • 官网文档:有产品、有域名,最后就是写文档了,考虑到我也非专业前端人员,写css不是我的强项,我只会写markdown,那就市面上选一个markdown的文档生成产品吧,主要参考有很多,我之前都用过,包括docusaurusvuePressVitePress
    ,最终被VitePress的界面风格吸引,加上是新的,所以就选择用vitepress来写官网文档了,文档编写前后大概花了一周的时间

运营推广

开发好了,也上线了,就考虑推广的事情了,另外也要考虑产品的定价

产品定价:
对于产品的定价,既然是工具组件为主,我所期望的是还是更平民一些,更高的价格则代表着更高的要求和产品价值,Knife4jInsight是一个初次尝试的商业化产品,我觉得获得市场认同感很重要,毕竟商业版我更多的想法也是想驱动开源Knife4j版本的迭代更新,是开源版本Knife4j的补充,企业需求的能量池,更多的算是一种开源变现的手段吧,就定价在49.9/年

产品license:license是软件启动时所需要的,在思考license职责过程中,我也思考了很多,比如使用期限、边界、产品交付物等等方面,最终思考如下:

  • 购买的License是永久期限使用,没有时间限制

  • License限定部署域名(最大支持5个域名/ip授权),避免license传播泛滥

  • License限定平台更新周期,平台免费更新期限1年

    即自购买该license后,Knife4jInsight在之后1年内的任何版本更新,都可以使用该license进行免费更新,超过期限后的新版本,则需要重新购买license

**运营推广:**之后产品上线后就是运营推广了,我觉得这是一个长期的事情,在保持对产品的持续迭代输出之余,通过公众号或者官网文档、技术交流群等,都可以进行推文,写文章也算是一种锻炼,而践行
Build On Public历程我觉得对于我自己来说也是一种不同的开发体验,即使是在开源项目中。

  • 公众号的推广包括对平台的介绍、功能介绍,这个在后期的开发迭代阶段会一一分享
  • 开发历程、自己的思考及产品的价值
  • 技术的选型,每个功能的想法及价值思考
  • 等等很多方面的内容都可以一一写出来

最后

Knife4j并不完美,期待Knife4j及Knife4jInsight与用户一起共同成长见证~~~

官网地址:http://knife4j.net/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1025033.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

暨南大学旅游管理《乡村振兴战略下传统村落文化旅游设计》许少辉校友——2023学生开学季辉少许

暨南大学旅游管理《乡村振兴战略下传统村落文化旅游设计》许少辉校友——2023学生开学季辉少许

SpringCloud Alibaba - Sentinel

接上文SpringCloud Alibaba - Nacos 1.Sentinel 流量防卫兵 1.1 安装与部署 和Nacos一样,它是独立安装和部署的,下载地址https://github.com/alibaba/Sentinel/releases 下载后的jar放到目录 然后配置 启动并访问,用户名密码都是 sentinel 此时就…

ISP技术概述

原本或许是为了对冲手机系统和APP设计无力感而诞生的拍照功能,现今却成为了众手机厂家除背部设计外为数不多可“卷”的地方,自拍、全景、夜景、小视频等旺盛的需求让这一技术的江湖地位迅速变化。对圈内人士而言,这一波变化带来的后摄、双摄、多摄、暗光、防抖、广角、长焦、…

软件定制开发具有以下特点|APP搭建|小程序

软件定制开发具有以下特点|APP定制|小程序 一、快速响应用户需求 软件定制开发的优势在于,它可以快速响应用户的需求,因为它是在现有软件的基础上进行功能定制、界面定制、服务定制等改造,而不是从零开始进行重新设计与开发,所以…

Spring MVC 请求参数绑定

文章目录 默认⽀持 Servlet API 作为⽅法参数绑定简单类型参数绑定Pojo类型参数绑定⽇期类型参数(需要配置⾃定义类型转换器)路径变量参数 Spring MVC 是一个用于构建 Web 应用程序的框架,它提供了一种方便的方式来处理 HTTP 请求和响应。在 …

【java】【SpringBoot】【三】开发实用篇 基于SpringBoot整合任意第三方技术

目录 一、热部署 1、手动启动热部署 2、自动启动热部署 3、热部署范围配置 4、关闭热部署 二、配置高级 1、ConfigurationProperties 2、宽松绑定/松散绑定 3、常用计量单位绑定 4、数据校验 三、测试 1、加载测试专用属性 2、加载测试专用配置 3、web环境模拟测…

Delft3D水动力与泥沙运动模拟教程

详情点击公众号链接:Delft3D水动力与泥沙运动模拟教程 前沿 1.Delft3D水动力-泥沙模型的基本原理; 2.Delft3D模型正价曲线网格和边界条件构建方法; 3.Delft3D模型水动力及泥沙模块使用方法; 4.Delft3D模型泥沙运动…

数据库----- 数据库高级

1.2 多表查询分类 将多个表的数据横向的联合起来。 1、 内连接 2、 外连接 a) 左外连接 b) 右外连接 3、 交叉连接 4、 自然连接 1.2.1 内连接【inner join】 语法一:select 列名 from 表1 inner join 表2 on 表1.公共字段表2.公共字段语法二:select …

PMP考试如何报名?麻烦吗?

还是比较麻烦的,PMP考试不是国内的考试,要报两次名,报名条件也很严格,PMP考试报名需要先在PMI网站进行英文报名,英文报名成功后才能在中国国际人才交流基金会网站进行中文报名,具体说明如下。 一、PMP考试…

求链表的倒数第k个节点

思路:利用快慢指针空间差 代码: struct ListNode* FindKthToTail(struct ListNode* pListHead, int k ) {// write code herestruct ListNode* slow pListHead;struct ListNode* fast pListHead;while(k--){if(fastNULL){return NULL;}fastfast->…

CentOS7.9安装mysql8.0

网上各种安装教程五花八门,各种报错,所以整理了一个完整版本,以下教程作者在2台新服务器测试安装均无问题。 一.下载mysql 下载地址:MySQL :: Download MySQL Community Server (Archived Versions) 或者直接执行命令 wget htt…

乐观锁与悲观锁

概述 悲观锁总会假设最坏的情况,乐观锁总会假设最好的情况。悲观锁和乐观锁最终都是为了保证线程的安全,避免在并发场景下的资源竞争问题,但是,相对于乐观锁,悲观锁对性能的影响更大! 悲观锁 共享资源每…

操作系统权限提升(二十六)之数据库提权-MySQL UDF提权

MySQL UDF提权 MySQL介绍 MySQL是最流行的开放源码SQL数据库管理系统,相对于Oracle,DB2等大型数据库系统,MySQL由于其开源性、易用性、稳定性等特点,受到个人使用者、中小型企业甚至一些大型企业的广泛欢迎,MySQL具有…

点大商城V2_2.5.0 全开源独立版 商家自营+多商户入驻 百度+支付宝+QQ+头条+小程序端+unipp开源前端

点大商城V2是一款采用全新界面设计支持多端覆盖的小程序应用,支持H5、微信公众号、微信小程序、头条小程序、支付宝小程序、百度小程序,本程序是点大商城V2独立版,包含全部插件,代码全开源,并且有VUE全端代码。分销&am…

log4j2原理分析及漏洞复现CVE-2021-44228

文章目录 log4j2原理分析及漏洞复现0x01 log4j2简介Log4j2 特点Log4j2组件的应用 0x02 CVE-2021-44228漏洞简介:漏洞适用版本漏洞原理lookup功能jndi解析器jndi是什么ldap服务RMI 0x03攻击过程0x04漏洞复现漏洞环境1.访问靶机2.dns回显验证3.将bash反弹shell命令编码…

职业观察|02:铁路维修师

高铁及地铁的发展,新生了许多之前没有的职位和专业。除了空乘/铁乘、安检人员等,大家可能相对熟悉。背后的维系工作人员其实也是一群更庞大的从业人员。本次主要介绍“铁路机务”。以下由一位铁路机务小哥讲述。 首先简单介绍一下铁路系统(包…

准备我们心爱的IDEA写Jsp

JSP学习 一、准备我们心爱的IDEA new一个项目:New Project --> Next -->Next -->Finsh 二、配置好服务器Tomcat-9.0.30 1.> 在WEB-INF下创建一个Lib包 将jsp-api.jar复制进去,并使其生效 未生效前: 生效过程: 2.>…

VLAN相关知识点

文章目录 前言VLANVLAN数据帧格式QinQ报文封装格式总结 前言 本博客仅做学习笔记,如有侵权,联系后即刻更改 科普: 参考网址 VLAN VLAN(Virtual Local Area Network)即虚拟局域网 是将一个物理的LAN在逻辑上划分成多…

Filebeat+Kafka+ELK搭建

---------------- FilebeatKafkaELK ---------------- 1.部署 ZookeeperKafka 集群 (前面已经配过 20.0.0.101、20.0.0.102、20.0.0.103) https://blog.csdn.net/m0_56509725/article/details/132908696?spm1001.2014.3001.55011.1 配置ELK 在&#xf…

阿里云负载均衡配置只能域名访问

1.选择虚拟服务器组》创建虚拟服务器组 2.点击创建虚拟服务器组》输入虚拟服务器组名称,注意:不要添加服务器,直接点击创建 3.在点击创建虚拟服务器组》输入虚拟服务器组名称》添加服务器(后端服务器)》创建 1.添加监…