[发明专利]一种基于GraphQL的类元数据框架有效
申请号: | 202010184455.9 | 申请日: | 2020-03-17 |
公开(公告)号: | CN111414378B | 公开(公告)日: | 2023-08-29 |
发明(设计)人: | 刘强;王伟;高天星 | 申请(专利权)人: | 用友网络科技股份有限公司 |
主分类号: | G06F16/242 | 分类号: | G06F16/242;G06F16/2455;G06F16/28 |
代理公司: | 北京中恒高博知识产权代理有限公司 11249 | 代理人: | 夏晏平 |
地址: | 100094*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 graphql 数据 框架 | ||
本发明属于Web后端开发技术领域,是一种基于GraphQL的类元数据框架,所述基于GraphQL的类元数据框架使用GraphQL基本语法,结合元数据查询组件,实现从元数据查询语句到实际执行的SQL或第三方接口调用的安全、快速转换。本发明数据获取更加精确,无冗余,对于只需获取id、name的相关接口,只会返回这两个字段相关的数据,不会产生多余的数据,使用框架后引入的依赖较少,无需解决繁杂的依赖冲突问题,与就有代码无缝融合,实现新的业务需求或需求变更,可以在不更改后端代码的前提下,通过编写查询语句实例实现。服务的稳定性更强,实现了聚合多个查询为单个查询的效果,以及达到了与当前元数据框架类似的查询能力。
技术领域
本发明涉及Web后端开发技术领域,具体为一种基于GraphQL的类元数据框架。
背景技术
在企业应用开发中,经常要面对大量的客户需求,以及需求变更。传统的纯后端代码实现的开发方式,面对大量的需求及变更时,需要耗费较大的人力。
元数据开发(MDD)的开发框架,使一部分用户需求从后端代码中分离出来。通过对需求相关的领域实体进行元数据描述,辅之以定制化的查询语句,可以在不编写或少量编写代码的场景下快速实现新需求或对需求变更进行支持。
然而,目前现有的元数据框架抽象层级较高,实现相对独立。引入相关元数据框架,也存在一系列问题:
1、现有的元数据框架需要引入元数据框架相关的一系列基础设施(如自研的ORM框架),较为重量级。与现有开发框架融合时,容易产生依赖冲突;
2、现有的元数据框架引入元数据还要考虑到如何与旧有实现的代码进行融合,处理难度较大。
发明内容
(一)解决的技术问题
针对现有技术的不足,本发明提供了一种基于GraphQL的类元数据框架,解决了现有的元数据框架需要引入元数据框架相关的一系列基础设施(如自研的ORM框架),较为重量级。与现有开发框架融合时,容易产生依赖冲突,以及引入元数据还要考虑到如何与旧有实现的代码进行融合,处理难度较大的问题。
(二)技术方案
为实现上述目的,本发明提供如下技术方案:一种基于GraphQL的类元数据框架,所述基于GraphQL的类元数据框架使用GraphQL基本语法,结合元数据查询组件,实现从元数据查询语句到实际执行的SQL或第三方接口调用的安全、快速转换,所述基于GraphQL的类元数据框架的架构方法包括以下步骤:
S1、开始:客户端发起GraphQL请求;
S2、类元数据查询语句:根据客户端发起的GraphQL请求,基于类元数据组件生成相应的类型集合Schema;
S3、GraphQL类型查询:根据生成的相应类型集合Schema在客户端进行业务请求,系统对该业务请求权限进行判断,当该业务请求符合请求权限时,进入下一流程,当该业务请求超出请求权限时,则该业务请求失效,请求结束;
S4、数据安全性加固校检:对业务请求中每个元素进行访问、检查,实现安全加固;
S5、ORM层使用mybatis:提供两种不同的sql翻译:基于mybatis的sql翻译和原生sql翻译,在显示框架内选择是否对加固校检后的数据选用基于mybatis的sql翻译,当选择基于mybatis的sql翻译时,基于mysql的sql翻译,可以将类元数据查询组件的数据,翻译为两部分:PreparedStatement的sql语句,sql替换参数映射paramMap,反之则选用原生sql翻译,即直接将查询组件实例翻译为可直接执行的sql语句;
S6、结束:执行最终sql语句并返回结果。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于用友网络科技股份有限公司,未经用友网络科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010184455.9/2.html,转载请声明来源钻瓜专利网。
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置