CN116594611A - 一种基于领域模型语言的零代码通用服务实现方法 - Google Patents
一种基于领域模型语言的零代码通用服务实现方法 Download PDFInfo
- Publication number
- CN116594611A CN116594611A CN202310876294.3A CN202310876294A CN116594611A CN 116594611 A CN116594611 A CN 116594611A CN 202310876294 A CN202310876294 A CN 202310876294A CN 116594611 A CN116594611 A CN 116594611A
- Authority
- CN
- China
- Prior art keywords
- model
- data
- service
- code
- zero
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 29
- 230000010354 integration Effects 0.000 claims description 9
- 238000013499 data model Methods 0.000 claims description 5
- 238000012217 deletion Methods 0.000 claims description 4
- 230000037430 deletion Effects 0.000 claims description 4
- 238000012986 modification Methods 0.000 claims description 3
- 230000004048 modification Effects 0.000 claims description 3
- 230000002688 persistence Effects 0.000 claims description 3
- 238000012216 screening Methods 0.000 claims description 2
- 238000012795 verification Methods 0.000 claims description 2
- 230000009286 beneficial effect Effects 0.000 abstract description 2
- 230000002085 persistent effect Effects 0.000 abstract 1
- 238000011161 development Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 6
- 241000283283 Orcinus orca Species 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 230000002776 aggregation Effects 0.000 description 2
- 238000004220 aggregation Methods 0.000 description 2
- 230000001174 ascending effect Effects 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000012549 training Methods 0.000 description 2
- 108010036466 E2F2 Transcription Factor Proteins 0.000 description 1
- 101000904152 Homo sapiens Transcription factor E2F1 Proteins 0.000 description 1
- 101000904150 Homo sapiens Transcription factor E2F3 Proteins 0.000 description 1
- 101000895882 Homo sapiens Transcription factor E2F4 Proteins 0.000 description 1
- 101000866336 Homo sapiens Transcription factor E2F5 Proteins 0.000 description 1
- 101000866340 Homo sapiens Transcription factor E2F6 Proteins 0.000 description 1
- 101000866292 Homo sapiens Transcription factor E2F7 Proteins 0.000 description 1
- 101000866298 Homo sapiens Transcription factor E2F8 Proteins 0.000 description 1
- 102100024026 Transcription factor E2F1 Human genes 0.000 description 1
- 102100024024 Transcription factor E2F2 Human genes 0.000 description 1
- 102100024027 Transcription factor E2F3 Human genes 0.000 description 1
- 102100021783 Transcription factor E2F4 Human genes 0.000 description 1
- 102100031632 Transcription factor E2F5 Human genes 0.000 description 1
- 102100031631 Transcription factor E2F6 Human genes 0.000 description 1
- 102100031556 Transcription factor E2F7 Human genes 0.000 description 1
- 102100031555 Transcription factor E2F8 Human genes 0.000 description 1
- 230000004931 aggregating effect Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/34—Graphical or visual programming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
- G06F16/2445—Data retrieval commands; View definitions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/604—Tools and structures for managing or administering access control systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/35—Creation or generation of source code model driven
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/38—Creation or generation of source code for implementing user interfaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2141—Access rights, e.g. capability lists, access control lists, access tables, access matrices
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Databases & Information Systems (AREA)
- Mathematical Physics (AREA)
- Automation & Control Theory (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提出一种基于领域模型语言的零代码通用服务实现方法包括:在零代码平台创建模型,使用端填写模型的名称、编码;进入零代码平台的模型编辑界面,使用端配置模型的字段信息;步持久化领域模型的配置信息,同时在零代码后端内存中维护一份与模型信息一致的数据结构;基于同一个HTTP端点动态生成通用的数据服务;接口调用方发送HTTP请求,零代码后端解析请求入参,匹配到对应的数据服务,结合请求入参和内存中的服务定义信息动态生成SQL语句,执行业务逻辑。本发明可以通过页面或者XML文件的格式定义模型的元数据信息,零代码的后端会在内存中存储模型的信息,且服务本身能够自解释,有助于非该领域的使用人员快速上手。
Description
技术领域
本发明涉及零代码后端开发领域,具体涉及一种基于领域模型语言的零代码通用服务实现方法。
背景技术
随着业务需求增长,应用的数据模型和服务数量也在不断增加。在这种情况下,传统的开发流程可能会出现问题。在这个过程中,开发者首先需要设计业务数据模型,接着开发应用接口,编写SQL语句,然后与前端开发人员进行联调测试,最后发布版本。每个步骤都需要精细的工作,而且涉及到大量的手动操作,所以整个开发周期可能会非常长。因此,这种方法可能无法满足不断增长的业务需求。
在这种背景下,零代码开发平台开始崭露头角。这些平台的主要优点是可以通过页面配置来快速完成应用接口的发布,极大地缩短了开发周期。然而,这些平台并非完美无缺。首先,接口调用方在调用通过页面配置发布的接口时,需要接口提供方提供详细的接口说明文档,这可能会增加开发者的工作负担。其次,接口的请求入参可读性较低,这可能会影响开发者对接口的理解和使用。最后,接口在执行过程中,需要从零代码平台的数据库中查询大量的配置信息,这可能会降低服务的整体性能。这就需要平台去平衡易用性和性能之间的关系,找到最佳的解决方案。
发明内容
为克服现有技术的不足,本发明提出一种基于领域模型语言的零代码通用服务实现方法,在零代码平台的后端提供统一的HTTP服务端点,使用类似于SQL操作符的专用语言来定义服务的入参格式,且入参的内容结构符合GraphQL(图查询语言)规范,服务本身可以做到自解释,结合加载至内存中的领域模型数据,动态生成符合标准SQL规范的SQL语句,高效地完成业务逻辑,节约开发时间,提升效率。
为实现上述目的,本发明提供一种基于领域模型语言的零代码通用服务实现方法,包括:
步骤S1:在零代码平台创建模型,使用端填写模型的名称、编码;
步骤S2:进入零代码平台的模型编辑界面,使用端配置模型的字段信息;
步骤S3:持久化领域模型的配置信息,同时在零代码后端内存中维护一份与模型信息一致的数据结构;
步骤S4:基于同一个HTTP端点动态生成通用的数据服务;
步骤S5:接口调用方发送HTTP请求,零代码后端解析请求入参,匹配到对应的数据服务,结合请求入参和内存中的服务定义信息动态生成SQL语句,执行业务逻辑。
进一步地,步骤S2所述的字段信息包括字段名称、编码、是否必填、数据类型,所述数据类型包括基本数据类型和引用类型,其中基本数据类型包括:字符串、整数、双精度浮点数、布尔值、日期,引用数据类型包括:对象引用和数组引用。
进一步地,步骤S4中的数据服务包括根据条件查询模型数据、根据主键查询模型数据、根据主键修改模型数据、批量修改模型数据、批量新增模型数据、根据主键删除模型数据、批量删除模型数据、聚合数据服务。
进一步地,步骤S1与步骤S2中通过零代码平台定义领域模型,可通过表单拖拽控件或者XML文件的形式实现。
进一步地,所述根据条件查询模型数据包括定义服务入参where、limit、offset、groupBy和orderBy;where用于定义动态生成的SQL语句中的筛选条件;limit用于定义动态生成的SQL语句中结果集的数据量;offset用于定义动态生成的SQL语句中的结果集的偏移量;groupBy用于定义动态生成的SQL语句中结果集的分组情况;orderBy用户定义动态生成的SQL语句中结果集的排序情况,其特征包括:desc和asc;
其中:
`where`:这是用于过滤SQL查询返回的数据的。它设置了数据需要满足的具体条件。如果数据满足"where"关键字后指定的条件,那么它将被包含在结果集中。
`limit`:这是用于指定SQL查询将返回的最大记录数的。
`offset`:这是与`limit`关键字一起使用的,用于指定查询返回的行的起始点。它基本上在开始返回行之前跳过偏移量中指定的行数。
`groupBy`:这是在SQL查询中用来将相同的数据分组的。它通常与聚合函数(如COUNT,SUM,AVG等)一起使用,按一个或多个列对结果集进行分组。
`orderBy`:这是在SQL查询中用来根据一个或多个列对结果进行升序(asc)或降序(desc)排序的。"asc"表示升序(从低到高或从A到Z),"desc"表示降序(从高到低或从Z到A)。
进一步地,步骤S5还包括:
调用通用数据服务接口,解析请求入参为GraphQL抽象语法树;
结合内存中的领域模型数据与GraphQL抽象语法树,动态转换为中间态的SQL抽象语法树;
生成预编译的SQL语句与参数列表;
生成可执行的SQL语句,执行业务逻辑,返回结果至服务调用方。
进一步地,还包括添加复杂的数据类型和验证选项,具体为在模型编辑界面,增加对复杂数据类型的支持。
进一步地,还包括无缝集成第三方服务,具体为在模型编辑界面,提供第三方服务集成选项,用户只需要选择需要集成的服务类型,并填写相应的API信息,系统即可自动完成集成。
进一步地,还包括动态生成前端用户界面,具体为:根据用户定义的数据模型,系统在前端自动生成相应的用户界面。
进一步地,还包括提供强大的权限和访问控制,具体为在模型编辑界面,用户可以定义权限规则。
与现有技术相比,本发明的有益效果是:
1.本发明提供了一种基于领域模型语言的零代码通用服务实现方法,允许通过页面或XML文件格式定义模型的元数据信息,零代码的后端将在内存中存储模型信息。极大地提高了开发的灵活性和效率。
2.本发明提供了一种基于领域模型语言的零代码通用服务实现方法,基于模型以及模型之间的关系,会生成一套共用一个HTTP端点的通用数据服务,提高了服务的通用性。
3.本发明提供了一种基于领域模型语言的零代码通用服务实现方法,生成的服务本身具有自解释的特性,使得非领域专家也可以快速理解和上手,从而提高了使用的便利性。
4.本发明提供了一种基于领域模型语言的零代码通用服务实现方法,服务的入参定义与SQL语言的定义类似,被解析后的服务入参数据最终会生成标准的SQL语句,使得开发者可以更容易地理解和编写业务逻辑。
5.本发明提供了一种基于领域模型语言的零代码通用服务实现方法,还可以配置服务权限、数据权限以及字段权限,保证了数据服务的安全性。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例中通过页面表单形式定义领域模型的示意图;
图2是本发明实施例的整体实现方案示意图;
图3为本发明实施例的一次服务调用内部执行流程示意图。
具体实施方式
下面将结合附图、通过对本发明的优选实施方式的描述,更加清楚、完整地阐述本发明的技术方案。
本发明提供一种基于领域模型语言的通用数据服务的实现方法,方法的整体实现方案示意图如图1所示,核心是定义模型的元数据信息,实现方式不限于页面表单或者XML文件配置两种方式。模型定义完成以后,零代码后端会解析模型的定义,将模型的元数据信息加载至后端应用的本地缓存中,同步会针对每个模型生成一套新增、更新、删除、查询和聚合的通用数据服务,服务除了可以查询模型自身基本类型的数据外,还可以查询模型之间通过关系建立的关联数据。
具体为:
定义领域模型:在零代码平台上创建新的模型,填写模型的名称、编码。
配置模型字段并集成第三方服务:在模型编辑界面,配置模型的字段信息,并提供第三方服务集成选项。字段信息包括名称、编码、是否必填、数据类型(包括基本类型、复杂类型,如JSON、地理位置)和验证选项(如电子邮件验证、正则表达式验证)。用户还可以选择需要集成的第三方服务,并填写相应的API信息。
持久化模型配置并提供版本控制和协作功能:保存配置的领域模型信息,并在后端内存中维护一份与模型信息一致的数据结构。同时,提供版本控制功能,让用户可以查看每个版本的变化,也可以随时回滚到任何一个历史版本。并提供协作功能,让多个用户可以同时参与一个项目的开发。
动态生成数据服务并集成AI和机器学习功能:根据存储在内存中的模型信息,基于同一个HTTP端点动态生成通用的数据服务,包括各种查询、修改、新增、删除、聚合等操作。同时,提供AI和机器学习功能选项,用户选择需要的功能类型,并提供相应的训练数据,系统即自动完成模型训练和集成。
执行业务逻辑并提供强大的权限和访问控制:当接口调用方发送HTTP请求时,后端解析请求参数,匹配到对应的数据服务,并根据请求参数和内存中的服务定义信息动态生成SQL语句,然后执行对应的业务逻辑。同时,根据用户定义的权限规则,自动控制数据的访问权限。
动态生成前端用户界面:根据用户定义的数据模型,自动在前端生成对应的用户界面,如表单、列表、图表等。
如图2所示为通过零代码平台的表单编辑器定义模型的元数据,用户可以配置模型的字段名称、编码、是否为空、数据类型等信息,也可以通过XML文件的形式定义模型的信息。如下所示,定义了一个模型名称为Country,包含编码、描述信息,Field和NavigationField分别表示基本类型的字段和引用类型的字段,其中NavigationField称为导航字段,用于定义引用类型的字段所关联的模型对象信息;id为实体的全局唯一标识,description是对各个实体的描述:
// 定义名称为Country的模型对象,name用于接口定义,code为模型对应的表名
<Object id="E2" name="Country" code="country" description="Country">
// 定义一个非空、长整型、名称为id的主键字段,其值由序列Seq_Country_Id确定
<Field id="E2F1" name="id" label="Id" primaryKey="true" type="Long"nullable="false" sequence="Seq_Country_Id" description="Primary key forcountry" />
// 定义一个非空、最大长度为50的文本类型的字段code
<Field id="E2F2" name="code" label="Code" type="Text" length="50"nullable="false"description="Country code"/>
// 定义一个非空、最大长度为100的文本类型的字段name
<Field id="E2F3" name="name" label="Name" type="Text" length="100"nullable="false"description="Country name"/>
// 定义一个非空、长整型的字段creatorId,其中deleteRule属性的值Protect指的是不允许删除该字段所指向的用户
<Field id="E2F4" name="creatorId" label="Created By" type="Long"nullable="false" deleteRule="Protect" description="User that created therecord" />
// 定义一个非空、日期时间类型的字段createdOn
<Field id="E2F5" name="createdOn" label="Created On" type="DateTime"nullable="false"description="Timestamp when the record was created" />
// 定义一个可为空、长整型的字段updaterId,其中deleteRule属性的值Ignore指的是删除该字段所指向的用户时,不对该字段做处理
<Field id="E2F6" name="updaterId" label="Updated By" type="Long"nullable="true" deleteRule="Ignore" description="Last user that updated therecord" />
// 定义一个可为空、日期时间类型的字段updatedOn
<Field id="E2F7" name="updatedOn" label="Updated On" type="DateTime"nullable="true"description="Timestamp when the record was updated by the lasttime" />
// 定义一个非空、布尔类型、默认值为true的字段isActive
<Field id="E2F8" name="isActive" label="Is Active" type="Boolean"nullable="false" default="true"description="Indicates that the record isactive or not"/>
// 定义一个指向Account模型的数组关联字段accounts,其中partner属性的值用于维护内存中对象的相互关联关系
<NavigationField id="E2N1" name="accounts" type="Collection(Account)"partner="country"/>
// 定义一个指向命名空间orca.system中的User模型的对象关联字段createdBy,其中field属性的值用于指定与该字段关联的实体字段,即上述creatorId字段
<NavigationField id="E2N2" name="createdBy" type="orca.system.User"field="creatorId"/>
// 定义一个指向命名空间orca.system中的User模型的对象关联字段updatedBy,其中field属性的值用于指定与该字段关联的实体字段,即上述updaterId字段
<NavigationField id="E2N3" name="updatedBy" type="orca.system.User"field="updaterId"/>
</Object>
模型定义完成后,零代码后端会从数据库或者文件系统中,将定义的模型元数据信息及其关联关系加载至内存中,并使用命名空间加以区分,一个模型在内存中为一个独立的实体对象,模型下面的字段信息按照数据类型的不同分别存储在不同列表中,并关联到对应的实体对象中。
针对内存中的每一个模型会生成一套数据服务,服务定义如下表所示,服务中的ObjectName指的是模型的名称:
数据服务执行的流程如图3所示,以根据过滤条件查询记录列表的服务为例,查询id字段不为空且名称不为空的城市列表,其具体执行过程描述如下,
1、服务请求入参如下所示:
{
// query表示请求为查询类型的接口,$where为变量引用,CountryBoolExp为根据模型定义自动生成的布尔表达式类型,用于限制$where的取值,data为查询返回的数据所在的根节点
"query": "query($where: CountryBoolExp) {\ndata {\n
// 查询满足where变量定义的过滤条件的Country记录列表
GetCountryByFilter(where: $where) {\n
// 查询结果中包含的字段信息
id\n code\nname\naccounts{\nid\n
name\ncountryid\n}\n}\n}\n}",
// variables为变量的定义,where对应上述$where的实际取值
"variables": {
// where中同一层级的字段在未明确指定连接符的情况下,默认为and连接符
"where": {
// 查询id字段不为空的数据
"id": {
// 是否为空,true为空,false非空
"_isNull": false
},
// 查询name字段不为空的数据
"name": {
// 是否为空,true为空,false非空
"_isNull": false
}
}
}
}
2、请求到达零代码后端之后,会将请求入参解析为GraphQL AST,并从内存中的模型数据中查询出与该服务相关的元数据信息,将入参中的字段名称映射为字段的编码,将两者的数据有效结合起来构造SQL AST以及SQL语句参数列表。
3、接着将第2步中的SQL AST进一步转换为预编译的SQL语句,最终转换为可执行的SQL语句,完成业务逻辑,整个处理过程简单高效。
上述具体实施方式仅仅对本发明的优选实施方式进行描述,而并非对本发明的保护范围进行限定。在不脱离本发明设计构思和精神范畴的前提下,本领域的普通技术人员根据本发明所提供的文字描述、附图对本发明的技术方案所作出的各种变形、替代和改进,均应属于本发明的保护范畴。本发明的保护范围由权利要求确定。
Claims (10)
1.一种基于领域模型语言的零代码通用服务实现方法,其特征在于,包括:
步骤S1:在零代码平台创建模型,使用端填写模型的名称和编码;
步骤S2:进入零代码平台的模型编辑界面,使用端配置模型的字段信息;
步骤S3:持久化领域模型的配置信息,同时在零代码后端内存中维护一份与模型信息一致的数据结构;
步骤S4:基于同一个HTTP端点动态生成通用的数据服务;
步骤S5:接口调用方发送HTTP请求,零代码后端解析请求入参,匹配到对应的数据服务,结合请求入参和内存中的服务定义信息动态生成SQL语句,执行业务逻辑。
2.根据权利要求1所述的一种基于领域模型语言的零代码通用服务实现方法,其特征在于,步骤S2所述的字段信息包括字段名称、编码、是否必填、数据类型,所述数据类型包括基本数据类型和引用数据类型,其中基本数据类型包括:字符串、整数、双精度浮点数、布尔值、日期,引用数据类型包括:对象引用和数组引用。
3.根据权利要求1所述的一种基于领域模型语言的零代码通用服务实现方法,其特征在于,步骤S4中的数据服务包括根据条件查询模型数据、根据主键查询模型数据、根据主键修改模型数据、批量修改模型数据、批量新增模型数据、根据主键删除模型数据、批量删除模型数据和聚合数据服务。
4.根据权利要求1所述的一种基于领域模型语言的零代码通用服务实现方法,其特征在于,步骤S1与步骤S2中通过零代码平台定义领域模型,通过表单拖拽控件或者XML文件的形式实现。
5.根据权利要求3所述的一种基于领域模型语言的零代码通用服务实现方法,其特征在于,所述根据条件查询模型数据包括定义服务入参where、limit、offset、groupBy和orderBy;where用于定义动态生成的SQL语句中的筛选条件;limit用于定义动态生成的SQL语句中结果集的数据量;offset用于定义动态生成的SQL语句中的结果集的偏移量;groupBy用于定义动态生成的SQL语句中结果集的分组情况;orderBy用于定义动态生成的SQL语句中结果集的排序情况,其特征包括:desc和asc。
6.根据权利要求1所述的一种基于领域模型语言的零代码通用服务实现方法,其特征在于,步骤S5还包括:
调用通用数据服务接口,解析请求入参为GraphQL抽象语法树;
结合内存中的领域模型数据与GraphQL抽象语法树,动态转换为中间态的SQL抽象语法树;
生成预编译的SQL语句与参数列表;
生成可执行的SQL语句,执行业务逻辑,返回结果至服务调用方。
7.根据权利要求1所述的一种基于领域模型语言的零代码通用服务实现方法,其特征在于,还包括添加复杂的数据类型和验证选项,具体为在模型编辑界面,增加对复杂数据类型的支持。
8.根据权利要求1所述的一种基于领域模型语言的零代码通用服务实现方法,其特征在于,还包括无缝集成第三方服务,具体为在模型编辑界面,提供第三方服务集成选项,用户只需要选择需要集成的服务类型,并填写相应的API信息,系统即可自动完成集成。
9.根据权利要求1所述的一种基于领域模型语言的零代码通用服务实现方法,其特征在于,还包括动态生成前端用户界面,具体为:根据用户定义的数据模型,系统在前端自动生成相应的用户界面。
10.根据权利要求1所述的一种基于领域模型语言的零代码通用服务实现方法,其特征在于,还包括提供强大的权限和访问控制,具体为在模型编辑界面,用户可以定义权限规则。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310876294.3A CN116594611B (zh) | 2023-07-18 | 2023-07-18 | 一种基于领域模型语言的零代码通用服务实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310876294.3A CN116594611B (zh) | 2023-07-18 | 2023-07-18 | 一种基于领域模型语言的零代码通用服务实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116594611A true CN116594611A (zh) | 2023-08-15 |
CN116594611B CN116594611B (zh) | 2023-10-27 |
Family
ID=87590323
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310876294.3A Active CN116594611B (zh) | 2023-07-18 | 2023-07-18 | 一种基于领域模型语言的零代码通用服务实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116594611B (zh) |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110989983A (zh) * | 2019-11-28 | 2020-04-10 | 深圳航天智慧城市系统技术研究院有限公司 | 一种零编码的应用软件快速构建系统 |
CN113779444A (zh) * | 2021-11-12 | 2021-12-10 | 北京宇信科技集团股份有限公司 | 接口开发方法、零代码引擎和零代码数据接口开发系统 |
CN113886362A (zh) * | 2021-10-10 | 2022-01-04 | 浙江力石科技股份有限公司 | 基于工作流引擎及低代码平台的数据存储系统及存储方法 |
CN114356286A (zh) * | 2021-11-29 | 2022-04-15 | 南京瀚元科技有限公司 | 一种低代码化接口开发的方法和系统 |
CN115599347A (zh) * | 2022-10-27 | 2023-01-13 | 北京思特奇信息技术股份有限公司(Cn) | 一种自动化代码开发实现方法和系统 |
CN115639980A (zh) * | 2022-10-08 | 2023-01-24 | 浙江中控技术股份有限公司 | 一种低代码平台可拖拽的前端逻辑编排方法及装置 |
CN115756430A (zh) * | 2022-11-22 | 2023-03-07 | 成都青软青之软件有限公司 | 低代码快速研发配置平台 |
CN115905740A (zh) * | 2022-12-15 | 2023-04-04 | 中电万维信息技术有限责任公司 | 一种多数据源服务引擎接口互联方法 |
CN115964026A (zh) * | 2023-01-10 | 2023-04-14 | 北京鑫锐诚毅数字科技有限公司 | 一种基于领域模型的vr虚拟仿真低代码开发系统 |
CN116400914A (zh) * | 2023-03-29 | 2023-07-07 | 中国航空工业集团公司西安飞行自动控制研究所 | 一种基于数据模型快速构建web应用的方法 |
-
2023
- 2023-07-18 CN CN202310876294.3A patent/CN116594611B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110989983A (zh) * | 2019-11-28 | 2020-04-10 | 深圳航天智慧城市系统技术研究院有限公司 | 一种零编码的应用软件快速构建系统 |
CN113886362A (zh) * | 2021-10-10 | 2022-01-04 | 浙江力石科技股份有限公司 | 基于工作流引擎及低代码平台的数据存储系统及存储方法 |
CN113779444A (zh) * | 2021-11-12 | 2021-12-10 | 北京宇信科技集团股份有限公司 | 接口开发方法、零代码引擎和零代码数据接口开发系统 |
CN114356286A (zh) * | 2021-11-29 | 2022-04-15 | 南京瀚元科技有限公司 | 一种低代码化接口开发的方法和系统 |
CN115639980A (zh) * | 2022-10-08 | 2023-01-24 | 浙江中控技术股份有限公司 | 一种低代码平台可拖拽的前端逻辑编排方法及装置 |
CN115599347A (zh) * | 2022-10-27 | 2023-01-13 | 北京思特奇信息技术股份有限公司(Cn) | 一种自动化代码开发实现方法和系统 |
CN115756430A (zh) * | 2022-11-22 | 2023-03-07 | 成都青软青之软件有限公司 | 低代码快速研发配置平台 |
CN115905740A (zh) * | 2022-12-15 | 2023-04-04 | 中电万维信息技术有限责任公司 | 一种多数据源服务引擎接口互联方法 |
CN115964026A (zh) * | 2023-01-10 | 2023-04-14 | 北京鑫锐诚毅数字科技有限公司 | 一种基于领域模型的vr虚拟仿真低代码开发系统 |
CN116400914A (zh) * | 2023-03-29 | 2023-07-07 | 中国航空工业集团公司西安飞行自动控制研究所 | 一种基于数据模型快速构建web应用的方法 |
Non-Patent Citations (2)
Title |
---|
"基于领域驱动设计的低代码平台的设计与实现", 《中国优秀博硕士学位论文全文数据库(硕士)工程科技Ⅱ辑》 * |
付少锋: "基于低代码的前端关键技术研究与实现", 《中国优秀博硕士学位论文全文数据库(硕士)工程科技Ⅱ辑》 * |
Also Published As
Publication number | Publication date |
---|---|
CN116594611B (zh) | 2023-10-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107402988B (zh) | 一种分布式NewSQL数据库系统和半结构化数据查询方法 | |
CN106874388B (zh) | 一种基于关系型数据库的异构系统数据级联操作自动构建方法 | |
CN105260403B (zh) | 通用跨数据库访问方法 | |
CN112650766B (zh) | 数据库数据操作的方法、系统及服务器 | |
US6240422B1 (en) | Object to relational database mapping infrastructure in a customer care and billing system | |
US7054858B2 (en) | System and method for retrieval of objects from object to relational mappings | |
US7162469B2 (en) | Querying an object for properties | |
WO2016123920A1 (zh) | 支持多类型数据库操作的集成接口的实现方法及系统 | |
CN110019314B (zh) | 基于数据项分析的动态数据封装方法、客户端和服务端 | |
US10437564B1 (en) | Object mapping and conversion system | |
CN100397397C (zh) | 基于关系数据库的xml数据存储与访问方法 | |
US8156091B2 (en) | Method to retain an inherent and indelible item value in a relational database management system | |
US20240256613A1 (en) | Data processing method and apparatus, readable storage medium, and electronic device | |
CN108228762B (zh) | 用于配置主数据库通用模板的方法和系统 | |
CN114443015A (zh) | 一种基于数据库元数据的增删改查服务接口生成方法 | |
CN116594611B (zh) | 一种基于领域模型语言的零代码通用服务实现方法 | |
CN116049193A (zh) | 数据存储方法及装置 | |
CN111782195A (zh) | 一种基于在请求参数上添加注解拼接成sql的查询方法 | |
CN114138821A (zh) | 一种数据库查询方法、系统和电子设备 | |
CN114385145A (zh) | 一种Web系统后端架构设计方法及计算机设备 | |
CN114610770A (zh) | 一种基于orm的分布式全局缓存系统 | |
CN110633459B (zh) | 数据报表的自动生成方法及系统、计算机可读存储介质 | |
CN113221528A (zh) | 基于openEHR模型的临床数据质量评估规则的自动生成与执行方法 | |
CN111752546A (zh) | 一种基于Excel的数据库对象设计管理平台、系统及方法 | |
CN114357051B (zh) | 基于原生JSON的SQL与NoSQL数据转换方法 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |