跳到正文
八一菜刀
返回

Knife4j新产品的想法

写在开头

Knife4j的发展已经有好几个年头了,最近想来,虽然这个小组件不太稳定,但有每天依然收到很多小伙伴的积极反馈,这让我又不由自主的对这个项目产生了羁绊。一直以来,总想把一些工作中的想法,以及和Knife4j周边生态相关的内容结合起来,做一些不一样的事情。

在Knife4j目前的生态中,我主要为Knife4j写了一些技术的组件,主要包括:

新想法

最近这段时间,主要思考的是Knife4j这个项目应该如何发展下去,如果做新产品,与市面上已经存在的其他产品如何做差异化的竞争。

思来想去,我又有了新的方向和目标~!

折腾新产品的心态一直没停过。。

市面上的产品包括PostmanApifoxApipost等等,专注在自己的领域里面,覆盖面都挺广的,而Knife4j好像以Ui界面交互起家,受众要宅一些,想想这些产品的词云关键字:API文档调试协作测试API设计等等

每一个关键字里面所需要投入的精力,都是Knife4j无法企及的,而且我在很早之前分享Knife4j的定位时,我一直想把他作为一个工具输出,单纯的工具,因此,包括:协作涉及自动化等等标签,都不适合我

那么,应该做什么?做一点不一样的呢?

Knife4jInsight这个产品的思路我自认为还是得发展下去,只不过需要更加产品化一下,做成平台,给用户提供更方便的可操作化的界面,简化整个使用步骤。

基于这个想法,和脑子里蹦出了一些新的Idea,包括:开放平台接口展示LLM大模型

我有了一个产品的大致雏形,我画了一个草图,大概是这个样子:

图1.产品架构图

在上图中,Knife4jInsight是一个独立服务组件,依附在Apache APISIX网关组件下的服务。那么,产品定位是什么呢?

产品定位:统一的通用接口文档及开放平台服务系统

在功能上,主要是三大块的功能:

平台的网关鉴权,通过实现Apache APIXIS的鉴权插件,植入到网关组件中,此时所有开放平台的网关入口流量,都会通过该插件与Knife4jInsight中的开发密钥进行联动,实现接口的鉴权。

开放文档的统一管理

先来看开放文档的统一管理,考虑到我们要与开源Knife4j项目共同发展,因此产品的功能上,也是以开源Knife4j为主,接口文档完全遵循Swagger2/OpenAPI3规范,在这个场景下,实现文档的统一管理和聚合

主要包括两个功能:

先来看下一界面原型。

命名空间(namespace):namespace列表可以查看所有的项目列表,并且namespac是可以直接访问的,如果当前namespace下面有接口实例,那么就可以通过Knife4j的前端界面进行预览和调试

图2.命名空间

点击namespaceId查看文档效果如下:

图3.命名空间文档展示

服务实例(ApiRegister):是一个OpenAPI规范的最小单元,可以通过接口自动注册上来,也可以通过平台进行主动编辑添加

包括接口的规范类型,数据来源类型,注册类型等等信息。

图4.接口实例

明细信息展示如下:

图5.接口实例文档展示

同样,当个APIRegister也是可以独立访问的,平台提供的单实例的访问方法:

开发密钥统一管理

开发者开放的API接口,很多时候,如果要对外的情况下,通常开发者们都需要实现接口的鉴权控制逻辑,而如果每个服务或不同的项目都实现一遍,那太耗费精力了,那么我觉得只要是聚合上来的接口文档,所对应的下游服务,都可以通过该平台进行统一的管理,分配鉴权及管理开放用户

下游服务统一管理

一旦涉及到开放平台,那么网关的企业级别高性能要求不可避免,这不是Knife4j的强项,作者也没这个能力,作为开放平台网关层,这里考虑Apache APISIX来实现服务的分发,依靠Apache APISIX提供的Admin API接口,平台通过将下游服务的转发规则进行动态注册,这样接口文档和开放平台就从功能职责上进行了区分,互相存在依赖关系,但职责分工不同

LLM大模型结合

目前,AIGC火热发展的当下,大模型落地更多产品的场景,我觉得是不可避免的,而对于在Knife4jInsight平台中,我目前也想到了一些LLM大模型可以落地的场景,主要包括:

结尾

以上就是我的一些新想法,如果您对该产品感兴趣,欢迎和我联系(xiaoymin@foxmail.com)~~~


分享文章:

上一篇
Knife4jInsight的产品开发历程
下一篇
Spring Cloud Gateway网关下的文档聚合?就用它了