CN117785167A - 一种支持多编辑器的低代码平台架构 - Google Patents
一种支持多编辑器的低代码平台架构 Download PDFInfo
- Publication number
- CN117785167A CN117785167A CN202311799766.6A CN202311799766A CN117785167A CN 117785167 A CN117785167 A CN 117785167A CN 202311799766 A CN202311799766 A CN 202311799766A CN 117785167 A CN117785167 A CN 117785167A
- Authority
- CN
- China
- Prior art keywords
- adapter
- editor
- data
- page
- warehouse
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000012545 processing Methods 0.000 claims abstract description 28
- 238000013523 data management Methods 0.000 claims abstract description 7
- 238000013500 data storage Methods 0.000 claims abstract description 7
- 238000000034 method Methods 0.000 claims description 16
- 230000008569 process Effects 0.000 claims description 14
- 230000010354 integration Effects 0.000 abstract description 5
- 230000008859 change Effects 0.000 abstract description 2
- 238000005457 optimization Methods 0.000 abstract description 2
- 238000012384 transportation and delivery Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 238000013475 authorization Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及代码平台优化技术领域,具体来说是一种支持多编辑器的低代码平台架构,包括核心处理模块,核心处理模块包括数据管理和存储模块,用于统一存储多个编辑器产生的页面和应用数据;增删查改模块,用于对页面和应用数据两个层级数据的操作,前端页面单独通过应用级别的接口来操作整个应用,通过页面级别的接口来操作单独的页面;入库适配器和出库适配器,入库适配器用于处理编辑器产出的schema的所有形态。本发明同现有技术相比,其优点在于:简化了编辑器类型相关的复杂性,使得后端能适应任何编辑器生成的数据格式;支持新的编辑器的快速集成,无需重大的后端改动;便于快速接入现有的低代码平台。
Description
技术领域
本发明涉及代码平台优化技术领域,具体来说是一种支持多编辑器的低代码平台架构。
背景技术
随着低代码开发平台的兴起,不同的团队根据各自的项目需求和偏好选择使用不同的可视化编辑器。这些编辑器各自有独特的特点和优势,但也带来了后端集成和数据处理的挑战。在多编辑器环境中,尤其是大型组织或多团队协作的情况下,需要一种方法来统一处理来自不同编辑器的数据和配置。
目前市场上的低代码平台大多针对特定的编辑器或技术栈进行优化,缺乏在后端层面统一处理多编辑器数据的能力。这导致了以下问题:
1.后端处理复杂性:不同编辑器产生的schema和数据需要分别处理,增加了后端的复杂性和维护成本。
2.平台扩展性限制:随着新编辑器的出现或团队需求的变化,现有平台可能难以适应新的编辑器集成,限制了平台的灵活性和未来适应性。
3.集成和升级挑战:为适应新编辑器或更新现有编辑器,可能需要对后端进行重大改动,影响系统的稳定性和可靠性。
因此,目前亟待解决的技术问题是:开发一种能够在后端层面统一处理多种编辑器数据的低代码平台,以降低后端的复杂性,提高系统的扩展性和灵活性,并简化维护和升级过程。
发明内容
本发明要解决的技术问题是克服现有技术的不足,提供一种支持多编辑器的低代码平台架构。
为了实现上述目的,设计一种支持多编辑器的低代码平台架构,包括核心处理模块,核心处理模块包括数据管理和存储模块,用于统一存储多个编辑器产生的页面和应用数据;增删查改模块,用于对页面和应用数据两个层级数据的操作,前端页面单独通过应用级别的接口来操作整个应用,通过页面级别的接口来操作单独的页面;入库适配器和出库适配器,所述入库适配器用于处理编辑器产出的schema的所有形态,经过入库适配器处理后的结果要包含应用数据、页面数据以及包含该编辑器的适配器信息,出库适配器用于处理标准的两层数据格式,把它转换成该编辑器的schema数据;入库的时候核心处理模块拿到第一编辑器的schema数据,从编辑器的适配器信息中查询到第一编辑器注册过的入库适配器,拿到该入库适配器,如果它是一个函数,就直接用这个函数来操作传入的schema数据,如果是接口类型,就根据保存的接口文档来调用这个接口,经过处理后这份schema数据会变成一个应用和页面数据,出库的时候从编辑器适配器的表中查询到该编辑器的出库适配器,根据类型来做相应的处理,最终转换成编辑器需要的特定结构的schema数据。
优选的,数据管理和存储模块将多个编辑器产生的数据拆分成应用表和页面表,所述应用表中会保存这个应用绑定的域名、基础路由、名称、商标、使用的编辑器基础字段,同时后留有一些扩展字段,所述页面表会保存这个页面对应的编辑器,包括编辑器的版本、权限码、鉴权方式、编辑器产出的schema数据。
优选的,页面表保存多编辑器的适配器信息,包括编辑器的唯一标识、编辑器的版本、编辑器的名称、编辑器注册的入库适配器类型、入库适配器内容、出库适配器类型和出库适配器内容,用于同时注册多种编辑器,以及同一种编辑器的多个不同的版本。
优选的,入库适配器和出库适配器的适配器类型为纯函数,适配器内容保存一段javascript函数的字符串,调用这个适配器处理schema数据的时候就会从库里读出这段函数,在代码里用eval去执行。
优选的,入库适配器和出库适配器的适配器类型是接口类型,适配器是一个API的调用文档,适配器内容中会保存这个API的接口和参数调用方式,调用这个适配器处理schema数据的时候,就会从库里读出这个API的接口地址,以及需要传的参数和怎么解析返回值,在代码中动态执行。
本发明同现有技术相比,其优点在于:
1、简化了编辑器类型相关的复杂性,使得后端能适应任何编辑器生成的数据格式;
2、支持新的编辑器的快速集成,无需重大的后端改动;
3、若有新的编辑器需要支持,只需要提供将该编辑器的schema数据结构和适配器即可,极大的降低了工作量,便于快速接入现有的低代码平台。
附图说明
图1是本发明所提供的低代码平台架构的架构图。
具体实施方式
下面结合附图对本发明作进一步说明,本发明的结构和原理对本专业的人来说是非常清楚的。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
如图1所示,本发明公开了一种支持多编辑器的低代码平台架构,包括核心处理模块,所述核心处理模块包括数据管理和存储模块、增删查改模块、入库适配器和出库适配器。
数据管理和存储模块,用于统一存储多个编辑器产生的页面和应用数据。
编辑器产生的页面和应用数据会统一存在一个数据库中,因为不同编辑器生产的数据结构可能差别很大,可能存在一个应用包含很多页面,或者页面非常复杂的情况,数据量会很大,所以选用非关系型数据库,这样查询效率较高,水平扩展也比较容易,支持多编辑器的不同数据结构的时候也会较灵活应用数据会拆分成两张表。
一张应用表,应用表中会保存这个应用绑定的域名、基础路由、名称,logo,使用的编辑器等基础字段,同时后留有一些扩展字段,比如应用的菜单结构,权限,引用关联的页面列表的id等。
一张页面表,会保存这个页面是使用哪个编辑器,编辑器的版本,权限码,鉴权方式,编辑器产出的schema数据等。
页面表保存多编辑器的适配器信息,包括编辑器的唯一标识、编辑器的版本、编辑器的名称、编辑器注册的入库适配器类型、入库适配器内容、出库适配器类型和出库适配器内容,用于同时注册多种编辑器,以及同一种编辑器的多个不同的版本。
增删查改模块,用于对页面和应用数据两个层级数据的操作,前端页面单独通过应用级别的接口来操作整个应用,通过页面级别的接口来操作单独的页面。
因为有的编辑器产出的数据是以页面为核心的,有的编辑器是以应用为核心的,我们同时提供对应用和页面两个层级的数据的操作,前端页面可以单独通过应用级别的接口来操作整个应用,通过页面级别的接口来操作单独的页面。
这两种数据结构的差异,都会通过下面提到的编辑器适配器来处理。
同时这种拆开的方式可以让用户操作更灵活,比如可以先单独创建一个空的应用,或者先单独创建一个页面,后来再把两者关联起来。
入库适配器和出库适配器,入库适配器用于处理编辑器产出的schema的所有形态,经过入库适配器处理后的结果要包含应用数据、页面数据以及包含该编辑器的适配器信息,出库适配器用于处理标准的两层数据格式,把它转换成该编辑器的schema数据;入库的时候核心处理模块拿到第一编辑器的schema数据,从编辑器的适配器信息中查询到第一编辑器注册过的入库适配器,拿到该入库适配器,如果它是一个函数,就直接用这个函数来操作传入的schema数据,如果是接口类型,就根据保存的接口文档来调用这个接口,经过处理后这份schema数据会变成一个应用和页面数据,出库的时候从编辑器适配器的表中查询到该编辑器的出库适配器,根据类型来做相应的处理,最终转换成编辑器需要的特定结构的schema数据。
具体来说,有一张表来保存多编辑器的适配器信息,这张表的核心字段有编辑器的唯一标识(key),编辑器的版本(version),编辑器的名称(name),编辑器注册的入库适配器类型,入库适配器内容,出库适配器类型,出库适配器内容,这样就可以同时注册多种编辑器,以及同-种编辑器的多个不同的版本,极大的增加了灵活性,同时在升级的时候,可以保持老版本编辑器产出的页面继续兼容,减少了应用的迁移成本。
要求入库适配器可以处理自己编辑器产出的schema的所有形态,经过入库适配器处理后的结果要符合固定的规范,要包含我们约定好格式的应用数据和页面数据,这两种数据里要包含.上面提到的两张表里的数据;出库适配器可以处理标准的两层数据格式,把它转换成该编辑器的schema数据。
其中适配器类型可分为两种,一种是纯函数,用这种适配器的时候,适配器内容就要保存一段javascript函数的字符串,调用这个适配器处理schema数据的时候就会从库里读出这段函数,在代码里用eval去执行。
另一种适配器类型是接口类型,这种形式的适配器实际是一个API的调用文档,适配器内容中会保存这个API的接口和参数调用方式,比如用固定的JSON结构来描述,接口地址是www.kezaihui.com/api/lowcode/apps,使用HTTP请求的POST方式,需要传递一个参数schema,返回值中的data字段就是最终结果,调用这个适配器处理schema数据的时候,就会从库里读出这个API的接口地址,以及需要传的参数和怎么解析返回值,在代码中动态执行。
这种通过数据库动态注册编辑器的方式,可以很灵活的动态扩展,支持新的编辑器,不需要更改服务端代码,不需要重启服务。
编辑器产出的数据和抽象出的两层模型数据之间应当进行转换转换。
入库的时候核心处理模块拿到特定编辑器A的schema数据,从编辑器适配器的表中查询到编辑器A注册过的入库适配器,拿到入库适配器,如果它是-一个函数,就直接用这个函数来操作传入的schema数据,如果是接口类型,就根据保存的接口文档来调用这个接口,经过处理后这份schema数据会变成一个我们约定好的应用和页面数据。
出库的时候过程类似,从编辑器适配器的表中查询到该编辑器的出库适配器,根据类型来做相应的处理,最终转换成编辑器需要的特定结构的schema数据。
实施例一
本实施例中,一个新的开发团队需要在现有的低代码平台上引入一个新的可视化编辑器B,用户处理符合团队要求的页面。
该编辑器生产的schema结构如下:
具体操作步骤如下:
在平台注册编辑器B,提供编辑器的基本信息,如编辑器名称,版本号,适配器等信息,结构如下:
2.入库流程
a.在编辑器B的前端页面创建和修改页面。
b.通过调用统一接口保存刚创建的应用schema,传递的数据如下:
c.中间层拿到数据后,根据editor_key和editor_version从适配器的表中查询到已经注册过的入库适配器(inbound-adaptor),发现是一个函数。
d.拿着函数去操作传入的schema数据,经过处理后的schema数据会有两个字段,一个appInfo,一个pages,然后会将这两部分数据分别写入数据库中的两张表中,到这里就完成了数据从编辑器到入库的操作。
3.出库流程
a.用户在前端访问一个已经保存过的页面。
b.前端页面通过统一接口查询这个页面的数据,调用参数如下:
1 HTTP GET
2 http://www.kezaihui.com/api/lowcode/apps/{app_id}?editor=ed:
c.经过中间层,根据app_id,page_id,editor,editor_version几个参数,查询到数据库里保存的app信息和page信息。
d.再从适配器的表里查询到注册过的出库适配器(output-adaptor),发现是一个api,这时候会根据api的文档去调用远程接口,如下:
e.出库适配器处理后返回的结果,就是编辑器B需要的schema格式的数据,这个数据返回到前端,由编辑器B再渲染出来,用户就可以继续接着编辑或者使用了。
以上所述,仅为此发明的具体实施方式,但本发明的保护范围不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,根据本发明的技术方案和新型的构思加于等同替换或改变,都应涵盖在本发明的保护范围之内。
Claims (5)
1.一种支持多编辑器的低代码平台架构,其特征在于包括核心处理模块,所述核心处理模块包括
数据管理和存储模块,用于统一存储多个编辑器产生的页面和应用数据;
增删查改模块,用于对页面和应用数据两个层级数据的操作,前端页面单独通过应用级别的接口来操作整个应用,通过页面级别的接口来操作单独的页面;
入库适配器和出库适配器,所述入库适配器用于处理编辑器产出的schema的所有形态,经过入库适配器处理后的结果要包含应用数据、页面数据以及包含该编辑器的适配器信息,出库适配器用于处理标准的两层数据格式,把它转换成该编辑器的schema数据;入库的时候核心处理模块拿到第一编辑器的schema数据,从编辑器的适配器信息中查询到第一编辑器注册过的入库适配器,拿到该入库适配器,如果它是一个函数,就直接用这个函数来操作传入的schema数据,如果是接口类型,就根据保存的接口文档来调用这个接口,经过处理后这份schema数据会变成一个应用和页面数据,出库的时候从编辑器适配器的表中查询到该编辑器的出库适配器,根据类型来做相应的处理,最终转换成编辑器需要的特定结构的schema数据。
2.如权利要求1所述的一种支持多编辑器的低代码平台架构,其特征在于所述数据管理和存储模块将多个编辑器产生的数据拆分成应用表和页面表,所述应用表中会保存这个应用绑定的域名、基础路由、名称、商标、使用的编辑器基础字段,同时后留有一些扩展字段,所述页面表会保存这个页面对应的编辑器,包括编辑器的版本、权限码、鉴权方式、编辑器产出的schema数据。
3.如权利要求1所述的一种支持多编辑器的低代码平台架构,其特征在于所述页面表保存多编辑器的适配器信息,包括编辑器的唯一标识、编辑器的版本、编辑器的名称、编辑器注册的入车适配器类型、入库适配器内容、出库适配器类型和出库适配器内容,用于同时注册多种编辑器,以及同一种编辑器的多个不同的版本。
4.如权利要求1所述的一种支持多编辑器的低代码平台架构,其特征在于所述入库适配器和出库适配器的适配器类型为纯函数,适配器内容保存一段javascript函数的字符串,调用这个适配器处理schema数据的时候就会从库里读出这段函数,在代码里用eval去执行。
5.如权利要求1所述的一种支持多编辑器的低代码平台架构,其特征在于所述入库适配器和出库适配器的适配器类型是接口类型,适配器是一个API的调用文档,适配器内容中会保存这个API的接口和参数调用方式,调用这个适配器处理schema数据的时候,就会从库里读出这个API的接口地址,以及需要传的参数和怎么解析返回值,在代码中动态执行。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311799766.6A CN117785167A (zh) | 2023-12-25 | 2023-12-25 | 一种支持多编辑器的低代码平台架构 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311799766.6A CN117785167A (zh) | 2023-12-25 | 2023-12-25 | 一种支持多编辑器的低代码平台架构 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117785167A true CN117785167A (zh) | 2024-03-29 |
Family
ID=90382734
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311799766.6A Pending CN117785167A (zh) | 2023-12-25 | 2023-12-25 | 一种支持多编辑器的低代码平台架构 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117785167A (zh) |
-
2023
- 2023-12-25 CN CN202311799766.6A patent/CN117785167A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7925002B2 (en) | Administering multiple target ACD systems | |
CN110351325B (zh) | 一种数据处理方法及相关设备 | |
CN105988996B (zh) | 一种索引文件生成方法及装置 | |
CN111818175B (zh) | 企业服务总线配置文件生成方法、装置、设备和存储介质 | |
CN110781183A (zh) | Hive数据库中增量数据的处理方法、装置以及计算机设备 | |
CN113760948A (zh) | 一种数据查询的方法及装置 | |
CN116680270A (zh) | 数据表转换方法、装置和存储介质 | |
CN109597825B (zh) | 规则引擎调用方法、装置、设备及计算机可读存储介质 | |
CN103414705B (zh) | 一种基于saas模式的移动互联网络异构数据交换方法 | |
CN117171108B (zh) | 一种虚拟模型映射方法和系统 | |
CN102999329B (zh) | 基于可扩展标记语言映射配置的活动目录接口开发方法 | |
CN111488286B (zh) | 一种Android模块独立开发的方法及装置 | |
CN101384050A (zh) | 一种移动终端及其资源管理的方法及系统 | |
CN102799423A (zh) | Jsf中执行动态方法的方法及装置 | |
CN104714923A (zh) | 一种实现设备共享的方法和装置 | |
CN117785167A (zh) | 一种支持多编辑器的低代码平台架构 | |
CN110955658A (zh) | 一种基于Java智能合约的数据组织和存储方法 | |
CN112817799A (zh) | 一种基于Spring框架的访问多数据源的方法及装置 | |
CN102193947A (zh) | 数据访问处理方法及系统 | |
CN101330526A (zh) | 一种下发网页的方法、系统以及wap网关服务器 | |
CN113971052B (zh) | 一种应用运行方法、装置、设备、存储介质及程序产品 | |
CN102722522A (zh) | 浏览器的导航方法及装置 | |
CN101739249A (zh) | 服务客户端自动构建系统 | |
CN117010358A (zh) | 消息卡片生成方法、装置、计算机设备和存储介质 | |
CN116954474A (zh) | 数据读取的方法、装置、设备、存储介质和程序产品 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |