System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及应用编程接口,具体的说,是一种api的数据转换方法、转换系统及代理接口的配置方法。
技术介绍
1、api全称是application programming interface,即应用编程接口,是一种允许应用程序或系统之间相互通信和交换数据的技术。通过配置相应的api,不同的应用程序或不同的系统之间可以进行数据交互和相互调用,例如,facebook互联网公司的服务端配置api,开发人员通过用户端能够向服务端读取或写入用户数据和推文;又如,电商平台的服务端配置api,第三方应用程序通过api能够访问和编辑电商平台的商品列表、价目表和库存数据。
2、api数据交换依赖于api数据结构转换,由于不同应用程序之间数据的交换或调用,需要配置相应的api转换系统,api数据转换主要研究的方向包括两个方面:一是提升转换系统的灵活性、易配置性;二是如何完成复杂api数据结构转换,例如对嵌套数组、嵌套json层级的数据结构转换。当前api数据转换的研究主要有以下缺陷:一是由于完全采用硬编码的方式,对简单的源数据逐个进行函数处理、字段名变更、类型转换、默认值进行配置,配置的灵活性偏低,配置较为麻烦;二是采用较为简单的低代码api接口配置或api网关配置,只参考源数据的结构进行配置,生成的目标数据类似源数据,难以转换为所需的目标数据。
3、例如,专利号为cn117850766a的中国专利,通过提取源数据的数据模型元素,根据更新的页面接口和sql语句,转换生成预定义接口和sql模板,再通过配置预定义接口和sql模板
技术实现思路
1、本专利技术的目的在于提一种api的数据转换方法、转换系统及代理接口的配置方法,用于解决现有技术中的api数据转换只能对简单的源数据逐个进行函数处理、字段名变更、类型转换、默认值进行配置,或者仅参考源数据的结构进行配置,难以转换为所需的目标数据,导致api数据转换的灵活性偏低、可配置性弱的问题。
2、本专利技术通过下述技术方案解决上述问题:
3、一种api的数据转换方法,包括以下步骤:
4、s1:获取用户端的源数据;将所述源数据传送于服务端,根据第一映射关系,解析所述源数据的数据结构,进而将所述源数据转换为源结构树;获取用户端的第一目标数据;将所述第一目标数据传于服务端,根据第二映射关系,解析所述第一目标数据,进而将所述第一目标数据转换为目标结构树;
5、s2:建立所述源结构树和所述目标结构树之间的第三映射关系,生成映射配置,所述映射配置包括:所述源结构树、目标结构树和第三映射关系;
6、s3:如果用户端输入请求数据,服务端根据所述映射配置,能够将所述请求数据转换为与用户端或第三服务相匹配的第二目标数据。
7、本专利技术提供的api的数据转换方法,根据第一映射关系解析源数据,能够得到源结构树,根据第二映射关系解析第一目标数据,能够得到目标结构树,不但解析并获得源数据的数据结构,而且解析并获得目标数据的数据结构,建立源结构树和目标结构树的第三映射关系,所配置的第三映射关系为源结构树和目标结构树之间的映射,进而生成包括所述源结构树、目标结构树和第三映射关系的映射配置,用户端输入的请求数据通过该映射配置转换为目标数据,不需要将请求数据转换为数据模型,再将数据模型或描述子与目标数据的每个数据节点进行配置,从而减少了配置的数据量,提高了配置的效率;并且,通过源数据获得源结构树、通过第一目标数据获得目标结构树,遵从源数据或目标数据的数据结构,如果源数据或目标数据发生扩展、更新或数组层级变化,均能够获得匹配的源结构树或目标结构树,进而能够生成并配置相匹配的映射配置,使配置更灵活应对数据变化;即只需输入、输出示例数据,便可实现源数据和目标数据之间三次转换,提升了配置的灵活性和易支配性,进而能够自动完成api的数据自动转换,从而降低项目集成过程中api的开发成本,提升集成速度。
8、针对无法根据源数据自动提取生成数据协议信息,也无法对目标数据结构进行灵活可配,无法完成快速可扩展的复杂协议配置及转换的问题,无法针对soap及restful等差异巨大的源数据与目标数据结构进行有效相互转换的问题,本专利技术的进一步改进,所述api的数据转换方法,所述源结构树包括:第一数组类型、第一数组个数、第一嵌套节点和第一层级关系;所述目标结构树包括:第二数组类型、第二数组个数、第二嵌套节点和第二层级关系。
9、作为本专利技术的改进方案,解析后获得的源结构树和目标结构树均包含数组类型、数组个数、嵌套节点和层级关系信息,源结构树和目标结构树建立的第三映射关系,使源结构树和目标结构树之间的相同数组层级字段可交叉移动、层嵌套数组结构的结构树可增减数据字典层级,能够对包含嵌套数组结构、嵌套层级结构的复杂数据进行转换;进而在不同系统或不同版本对接或适配兼容时,针对结构不一致、内容不同或上下游结构各异的数据,不需要重复硬编码、注解或添加实体数据类即可实现转换,支持不同业务系统的api结构数据的快速对接,进一步提升api的数据转换的灵活性和转换能力。
10、本专利技术所述api的数据转换方法的进一步改进,所述映射配置的实现包括以下步骤:在源结构树和目标结构树建立第三映射关系,使源结构树和目标结构树的相同数组的层级字段交叉移动,并在源结构树和目标结构树的层嵌套数组结构中增加或减少数据字典层级,进而能够转换包含嵌套数组结构、嵌套层级结构的复杂数据。
11、作为本专利技术的进一步改进,针对复杂的数据结构模型进行转换,如数组层级结构变化,能够在上下两层数组结构源数据转换为目标两层数组之间再嵌套一层数据字典层级,又或如数组中字典数据与其他同层级数组中字典主键进行交叉移动,完成标准数据结构体之间相同数组层级字段可交叉移动及多层嵌套数组结构之中可增减map字典层等复杂结构的相互转换,最终再由源结构树和目标结构树组成的标准数据结构体再转换为所需目标数据,能够实现不同系统、相同系统不同版本进行对接或适配兼容时,数据结构不一致、数据内容不相同或上下游数据结构各异,如soap及restful数据格式的数据对接。
12、本专利技术所述api的数据转换方法的进一步改进,所述s2还包括以下步骤:
13、s21:将所述映射配置生成结构树转换器,所述结构树转换器遍历所述源结构树;
14、s22:通过源结构树的位置信息附带的原层级信息,查询源结构树中的节点名在源数据中的数据值;
...【技术保护点】
1.一种API的数据转换方法,其特征在于,包括以下步骤:
2.根据权利要求1所述的API的数据转换方法,其特征在于,所述源结构树包括:第一数组类型、第一数组个数、第一嵌套节点和第一层级关系;所述目标结构树包括:第二数组类型、第二数组个数、第二嵌套节点和第二层级关系。
3.根据权利要求2所述的API的数据转换方法,其特征在于,所述映射配置的实现包括以下步骤:在源结构树和目标结构树建立第三映射关系,使源结构树和目标结构树的相同数组的层级字段交叉移动,并在源结构树和目标结构树的层嵌套数组结构中增加或减少数据字典层级,进而能够转换包含嵌套数组结构、嵌套层级结构的复杂数据。
4.根据权利要求2所述的API的数据转换方法,其特征在于,所述S2还包括以下步骤:
5.根据权利要求1-4任意一项所述API的数据转换方法,其特征在于,还包括以下步骤:
6.一种API的数据转换系统,用于实现如权利要求1-5任意一项所述的API的数据转换方法,其特征在于,包括:解析模块、映射模块、转换模块、生成模块和调用模块;
7.一种API的代理
...【技术特征摘要】
1.一种api的数据转换方法,其特征在于,包括以下步骤:
2.根据权利要求1所述的api的数据转换方法,其特征在于,所述源结构树包括:第一数组类型、第一数组个数、第一嵌套节点和第一层级关系;所述目标结构树包括:第二数组类型、第二数组个数、第二嵌套节点和第二层级关系。
3.根据权利要求2所述的api的数据转换方法,其特征在于,所述映射配置的实现包括以下步骤:在源结构树和目标结构树建立第三映射关系,使源结构树和目标结构树的相同数组的层级字段交叉移动,并在源结构树和目标结构树的层嵌套数组结构中增加或减少数据字典层级,进而能够转换包含...
【专利技术属性】
技术研发人员:李成东,吴纯彬,何斌,
申请(专利权)人:四川启睿克科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。