CN111142852A - 接口转换函数生成方法和装置 - Google Patents
接口转换函数生成方法和装置 Download PDFInfo
- Publication number
- CN111142852A CN111142852A CN201911401612.0A CN201911401612A CN111142852A CN 111142852 A CN111142852 A CN 111142852A CN 201911401612 A CN201911401612 A CN 201911401612A CN 111142852 A CN111142852 A CN 111142852A
- Authority
- CN
- China
- Prior art keywords
- parameter
- data type
- conversion rule
- source
- target
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
- G06F8/24—Object-oriented
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/43—Checking; Contextual analysis
- G06F8/436—Semantic checking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4488—Object-oriented
- G06F9/449—Object-oriented method invocation or resolution
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
本申请提供了一种接口转换函数生成方法和装置,该方法包括:获取微服务接口的源输入参数和目标输入参数;如源输入参数和目标输入参数的数据结构属于列表类型,依据源输入参数中元素的数据类型和语义标签及目标输入参数中元素的数据类型和语义标签,确定第一转换规则,并基于第一转换规则生成第一接口转换函数;如源输入参数和目标输入参数的数据结构属于记录类型,针对目标输入参数中每个目标参数,从源输入参数中确定具有相同语义的源参数,基于源参数的数据类型和语义标签以及目标参数的数据类型和语义标签,确定第二转换规则,并生成第二接口转换函数。本申请在微服务接口发生变化后,可更为便捷和高效的生成相应的接口转换函数。
Description
技术领域
本申请涉及数据处理技术领域,尤其涉及一种接口转换函数生成方法和装置。
背景技术
微服务架构是一项支持快速灵活开发业务并在云中部署的新技术。在微服务架构中,应用程序由对部署运行的微服务应用组成,每个微服务应用会对外开发一系列的服务接口,通过调用该微服务应用的服务接口可以实现调用该微服务所提供的功能。同时,微服务之间也会存在相互调用的关系。
在微服务相互调用时,需要满足调用者调用接口的输入参数与被调用者中该接口暴露的输入参数完全一致,才可以实现微服务的调用。如果微服务中被调用的接口发生变化,为了保证为服务器接口的正常调用,就需要通过微服务管理系统对调用者调用接口的输入参数进行转换,以将调用者调用接口的输入参数转换为变换的接口所匹配的调用参数。如,微服务的版本从1.0升级到2.0版本之后,微服务的接口的输入参数也会发生变化,而为了需要调用该微服务的调用者侧可以在输入接口的1.0版本对应的接口输入参数的情况下,仍可以调用升级到2.0版本的微服务,则在微服务管理系统获取调用接口的输入参数之后,将该接口的输入参数转换为适合接口的2.0版本的调用参数。
其中,微服务管理系统对接口的输入参数进行转换是基于接口转换函数实现的。然而,微服务经过不断迭代和演化,微服务之间的调用关系会变得越来越复杂,微服务接口依赖关系被捆绑在一起,因此,在微服务接口发生变换之后,为了适配微服务接口变化,开发的接口转换函数的复杂度也相应提高。可见,如何在微服务接口变化后,较为便捷、高效的生成相应的接口转换函数是本领域技术人员迫切需要解决的技术问题。
发明内容
有鉴于此,本申请提供了一种接口转换函数生成方法和装置,以在微服务的接口发生变化后,可以实现更为便捷和高效的生成相应的接口转换函数。
为实现上述目的,一种接口转换函数生成方法,包括:
获取微服务接口升级前的源输入参数和所述微服务接口升级后的目标输入参数;
分别确定所述源输入参数和所述目标输入参数的数据结构;
如所述源输入参数和所述目标输入参数的数据结构均属于列表类型,依据所述源输入参数中元素的第一数据类型和第一语义标签以及所述目标输入参数中元素的第二数据类型和第二语义标签,确定转换所述源输入参数的第一转换规则,并基于所述第一转换规则生成第一接口转换函数,所述第一接口转换函数为利用所述第一转换规则依次对所述源输入参数中各元素进行转换的函数;
如所述源输入参数和所述目标输入参数的数据结构均属于记录类型,则针对所述目标输入参数中每个目标参数,从所述源输入参数中确定与所述目标参数表征同一语义的源参数,基于所述源参数的第三数据类型和第三语义标签以及所述目标参数的第四数据类型和第四语义标签,确定将所述源参数转换为所述目标参数的第二转换规则,并生成第二接口转换函数,所述第二接口转换函数为利用所述第二转换规则对所述源参数进行转换的函数。
优选的,所述依据所述源输入参数中元素的第一数据类型和第一语义标签以及所述目标输入参数中元素的第二数据类型和第二语义标签,确定转换所述源输入参数的第一转换规则,包括:
依据所述源输入参数中元素的第一数据类型和第一语义标签以及所述目标输入参数中元素的第二数据类型和第二语义标签,从存储的转换规则集合中查询出与所述第一数据类型、第一语义标签、第二数据类型和第二语义标签匹配的第一转换规则;
所述基于所述源参数的第三数据类型和第三语义标签以及所述目标参数的第四数据类型和第四语义标签,确定将所述源参数转换为目标参数的第二转换规则,包括:
从存储的转换规则集合中查询与所述源参数的第三数据类型和第三语义标签以及目标参数的第四数据类型和第四语义标签匹配的第二转换规则。
优选的,所述从存储的转换规则集合中查询出与所述第一数据类型、第一语义标签、第二数据类型和第二语义标签匹配的第一转换规则,包括:
如果所述第一数据类型与所述第二数据类型相同,且所述第一语义标签与所述第二语义标签相同,则将恒等函数作为第一转换规则;
如果存储的自定义转换规则集合中存在与所述第一数据类型、第二语义标签、第二数据类型和第二语义标签匹配的第一自定义转换规则,将所述第一自定义转换规则确定为用于转换所述源输入参数的第一转换规则;
如果不存在所述第一自定义转换规则,所述第一数据类型和第二数据类型均属于基本数据类型,且所述第一语义标签和第二语义标签相同,从设定的基本类型转换规则集合中,确定从所述第一数据类型转换到第二数据类型的第一基本转换规则,并将所述第一基本转换规则确定为用于转换所述源输入参数的第一转换规则。
优选的,所述从存储的转换规则集合中查询与所述源参数的第三数据类型和第三语义标签以及目标参数的第四数据类型和第四语义标签匹配的第二转换规则,包括:
如果所述第三数据类型与所述第四数据类型相同,且所述第三语义标签与所述第四语义标签相同,则将恒等函数作为第二转换规则;
如果存储的自定义转换规则集合中存在与所述第三数据类型、第三语义标签、第四数据类型和第四语义标签匹配的第二自定义转换规则,将所述第二自定义转换规则确定为用于转换所述源输入参数的第二转换规则;
如果不存在所述第二自定义转换规则,所述第三数据类型和第四数据类型均属于基本数据类型,且所述第三语义标签和第四语义标签相同,从设定的基本类型转换规则集合中,确定从所述第三数据类型转换到第四数据类型的第二基本转换规则,并将所述第二基本转换规则确定为用于将所述源参数转换为所述目标参数的第二转换规则。
优选的,所述从所述源输入参数中确定与所述目标参数表征同一语义的源参数,包括:
如果所述源输入参数中存在与所述目标参数相同名称的源参数,将所述源参数确定为与所述目标参数表征同一语义的源参数;
如果所述源输入参数中不存在与所述目标参数相同名称的源参数,则从所述源输入参数中确定语义标签与所述目标参数的语义标签相同的源参数。
优选的,还包括:
如所述源输入参数和所述目标输入参数的数据结构均属于列表类型,将所述第一接口转换函数存储为与所述源输入参数的第一标识和所述目标输入参数的第二标识对应的接口转换函数;
如所述源输入参数和所述目标输入参数的数据结构均属于记录类型,每对源参数和目标参数对应的第二接口转换函数存储为与所述源输入参数的第一标识和所述目标输入参数的第二标识对应的接口转换函数。
又一方面,本申请还提供了一种接口转换函数生成装置,包括:
参数获得模块,用于获取微服务接口升级前的源输入参数和所述微服务接口升级后的目标输入参数;
结构确定模块,用于分别确定所述源输入参数和所述目标输入参数的数据结构;
第一函数生成模块,用于如所述源输入参数和所述目标输入参数的数据结构均属于列表类型,依据所述源输入参数中元素的第一数据类型和第一语义标签以及所述目标输入参数中元素的第二数据类型和第二语义标签,确定转换所述源输入参数的第一转换规则,并基于所述第一转换规则生成第一接口转换函数,所述第一接口转换函数为利用所述第一转换规则依次对所述源输入参数中各元素进行转换的函数;
第二函数生成模块,用于如所述源输入参数和所述目标输入参数的数据结构均属于记录类型,则针对所述目标输入参数中每个目标参数,从所述源输入参数中确定与所述目标参数表征同一语义的源参数,基于所述源参数的第三数据类型和第三语义标签以及所述目标参数的第四数据类型和第四语义标签,确定将所述源参数转换为所述目标参数的第二转换规则,并生成第二接口转换函数,所述第二接口转换函数为利用所述第二转换规则对所述源参数进行转换的函数。
优选的,所述第一函数生成模块,包括:
第一规则确定子模块,用于如所述源输入参数和所述目标输入参数的数据结构均属于列表类型,依据所述源输入参数中元素的第一数据类型和第一语义标签以及所述目标输入参数中元素的第二数据类型和第二语义标签,从存储的转换规则集合中查询出与所述第一数据类型、第一语义标签、第二数据类型和第二语义标签匹配的第一转换规则;
第一函数生成子模块,用于基于所述第一转换规则生成第一接口转换函数,所述第一接口转换函数为利用所述第一转换规则依次对所述源输入参数中各元素进行转换的函数;
所述第二函数生成模块,包括:
参数配对子模块,用于如所述源输入参数和所述目标输入参数的数据结构均属于记录类型,则针对所述目标输入参数中每个目标参数,从所述源输入参数中确定与所述目标参数表征同一语义的源参数,
第二规则确定子模块,用于针对所述参数配对单元确定出每对源参数和目标参数,从存储的转换规则集合中查询与所述源参数的第三数据类型和第三语义标签以及目标参数的第四数据类型和第四语义标签匹配的第二转换规则;
第二函数生成子模块,用于生成第二接口转换函数。
优选的,所述第一规则确定子模块在从存储的转换规则集合中查询出与所述第一数据类型、第一语义标签、第二数据类型和第二语义标签匹配的第一转换规则时,具体为:
如果所述第一数据类型与所述第二数据类型相同,且所述第一语义标签与所述第二语义标签相同,则将恒等函数作为第一转换规则;
如果存储的自定义转换规则集合中存在与所述第一数据类型、第二语义标签、第二数据类型和第二语义标签匹配的第一自定义转换规则,将所述第一自定义转换规则确定为用于转换所述源输入参数的第一转换规则;
如果不存在所述第一自定义转换规则,所述第一数据类型和第二数据类型均属于基本数据类型,且所述第一语义标签和第二语义标签相同,从设定的基本类型转换规则集合中,确定从所述第一数据类型转换到第二数据类型的第一基本转换规则,并将所述第一基本转换规则确定为用于转换所述源输入参数的第一转换规则。
优选的,第二规则确定子模块,在从存储的转换规则集合中查询与所述源参数的第三数据类型和第三语义标签以及目标参数的第四数据类型和第四语义标签匹配的第二转换规则时,具体为:
如果所述第三数据类型与所述第四数据类型相同,且所述第三语义标签与所述第四语义标签相同,则将恒等函数作为第二转换规则;
如果存储的自定义转换规则集合中存在与所述第三数据类型、第三语义标签、第四数据类型和第四语义标签匹配的第二自定义转换规则,将所述第二自定义转换规则确定为用于转换所述源输入参数的第二转换规则;
如果不存在所述第二自定义转换规则,所述第三数据类型和第四数据类型均属于基本数据类型,且所述第三语义标签和第四语义标签相同,从设定的基本类型转换规则集合中,确定从所述第三数据类型转换到第四数据类型的第二基本转换规则,并将所述第二基本转换规则确定为用于将所述源参数转换为所述目标参数的第二转换规则。
由以上可知,本申请考虑到微服务接口升级前的源输入参数和微服务接口升级后的目标输入参数的数据结构的不同,设置了适合相应数据结构的接口转换函数生成方式。这样,在源输入参数和目标输入参数的数据结构确定的情况下,依据源输入参数和目标输入参数中元素或者参数的数据类型和语义标签,确定出相应的转换规则,便可以根据转换规则生成将源输入参数中的元素或者参数转换为目标输入参数所对应形式的接口转换函数,因此,无论微服务的接口定义的输入参数类型是怎样的,开发人员只需设置与需要转换的输入参数对各自的数据类型和语义标签匹配的转换规则,便可以通过本申请的方案生成用于对微服务接口升级前的源输入参数进行转换的接口转换函数,避免了开发人员针对不同接口的输入参数的不同数据结构单独开发接口转换函数的相关代码,减少了生成接口转换函数的复杂度,也有利于提高生成接口转换函数的效率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1示出了本申请实施例提供的一种接口转换函数生成方法的一种流程示意图;
图2示出了本申请实施例提供的一种接口转换函数生成方法的又一种流程示意图;
图3示出了本申请生成接口转换函数的一种原理框架图;
图4示出了本申请的一种接口转换函数生成装置的一种组成结构示意图。
具体实施方式
本申请实施例的方案适用于在微服务接口升级后,针对升级前的微服务接口的接口定义的输入参数进行转换的转换代码。本申请实施例可以应用于计算机设备或者多台计算机设备组成的集群等,如可以应用于微服务管理系统的服务器等。
如图1所示,其示出了本申请一种接口转换函数生成方法一个实施例的流程示意图,本实施例可以包括如下步骤:
S101,获取微服务接口升级前的源输入参数和微服务接口升级后的目标输入参数。
可以理解的是,微服务接口发生变化之后,微服务接口的接口定义中用于调用该微服务接口的输入参数也会相应变化,这样,就会导致微服务接口变化前的输入参数与变化后的输入参数保持不一致,从而影响到微服务接口的调用。为了使得调用者因为微服务接口的变化而进行相应的调整,使得调用者仍可以采用微服务升级前的微服务接口的输入参数来调用微服务接口,就需要对调用者采用微服务变化前的输入参数进行转换,而本实施例就是生成转换所需的函数的过程。
其中,为了便于区分,将微服务接口升级前的输入参数称为源输入参数,而将微服务接口升级后的输入参数称为目标输入参数。其中,该源输入参数和目标输入参数中可能会存在参数的格式和数量的差异。
S102,分别确定源输入参数和目标输入参数的数据结构。
其中,接口定义的输入参数的数据结构也可以称为接口定义的输入参数的输入类型,其表征该输入参数中各个组成对象(如元素或者参数)的组成形式。
具体的,输入参数的数据结构包括:列表类型和记录类型两种。
其中,列表类型的输入参数记录的各个元素组成的列表,其中,该输入参数对应的列表中记录的是各个元素的值。如,列表类型的输入参数的结构为:[值1,值2,……,值n],例如,lst:[“a1”,“a2”,”a3”]其中,a1、a2和a3为列表中的三个元素的值。
记录类型是包含了各个参数的参数名称和参数取值,如,记录类型可以表示为{参数1:值1,参数2:值2,……参数n:值n},其中,参数1、参数2和参数n表示不同参数的参数名称,值1为参数1的值,值2为参数2的值,值n为参数n的值。
S103,如源输入参数和目标输入参数的数据结构均属于列表类型,依据源输入参数中元素的第一数据类型和第一语义标签以及目标输入参数中元素的第二数据类型和第二语义标签,确定转换源输入参数的第一转换规则,并基于第一转换规则生成第一接口转换函数。
其中,第一接口转换函数为利用第一转换规则依次对源输入参数中各元素进行转换的函数。
其中,语义标签用于表示输入参数中元素或者参数所表达的语义特征,语义标签可以为语义特征的标识。如,语义标签1为表达数据为表征包含年、月、日的信息在内的日期;而语义标签2为表达数据是表征包含年、月、日、时、分的信息在内的日期。
数据类型包括基本数据类型、列表类型和记录类型。其中,基本数据类型包括基本数据类型是指整数、浮点数、布尔值和字符串。
可以理解的是,在输入参数为列表类型的情况下,会统一定义输入参数中元素的数据类型和语义标签,也就是说,输入参数中各元素的数据类型和语义标签都是一致的。
其中,为了便于区分,在源输入参数和目标输入参数均属于列表类型的情况下,将源输入参数中元素的数据类型称为第一数据类型,将源输入参数中元素的语义标签称为第一语义标签,而将目标输入参数中元素的数据类型称为第二数据类型,将目标输入参数中元素的语义标签称为第二语义标签。
可以理解的是,转换规则是实现从源输入参数转换到目标输入参数的规则。转换规则是预先定义好的,如可以是开发人员自定义的转换规则,也可以是固有的转换规则。
为了便于区分,本申请将源输入参数和目标输入参数的数据结构均属于列表类型的情况下,确定出的转换规则称为第一转换规则。
在一种可能的情况中,该第一转换规则可以是从预先配置的多个转换规则中确定出的。如,从存储的转换规则集合中查询出的该第一数据类型、第一语义标签、第二数据类型和第二语义标签匹配的第一转换规则。其中,该转换规则集合至少包括开发人员自定义的自定义转换规则集合,该自定义转换规则集合包括多条自定义转换规则。
考虑到微服务接口不断升级,源输入参数的参数名称和参数名称所表征的含义都可能会发生变化,因此,很可能会出现参数名称相同但是却表达的语义不同的情况,因此,为了准确针对通过数据类型和语义标签来唯一表征输入参数或者输入参数中的参数。相应的,每个转换规则都对应有:源输入参数对应的数据类型+语义标签,以及目标输入参数对应的数据类型+语义标签,以便于基于从源输入参数确定出的数据类型和语义标签以及从目标输入参数确定出的数据类型和语义标签,查询匹配的转换规则。
例如,源输入参数到目标输入参数与转换规则之间的对应关系可以如下例所示:
数据类型1和语义标签1表征的参数(输入参数或者输入参数中的参数)转换为数据类型2和语义标签2表征的参数对应的转换规则为转化规则1;
数据类型1和语义标签3表征的参数(输入参数或者输入参数中的参数)转换为数据类型2和语义标签4表征的参数对应的转换规则为转化规则2。
可以理解的是,在源输入参数和目标输入参数的语义标签相同的情况下,如果源输入参数的数据类型和目标输入参数的数据类型不同,但是二者的数据类型都属于基本数据类型的情况下,源输入参数到目标输入参数的转换仅仅是基本数据类型之间的格式转换。
而有些基本数据类型之间的类型转换规则是默认的,无需开发人员自定义设定的,因此,作为一种可选方式,还可以在规则转换集合中配置基本类型转换规则集合,从基本类型转换规则集合中确定第一转换规则。该基本类型转换规则集合包括多种基本数据类型之间的基本转换规则。
如,基本数据类型之间存在三对可相互转换的关系,具体为:字符串与整数的互相转换;字符串与浮点数的互相转换,字符串与布尔值的互相转换。相应的,可以得到基本数据类型之间的六种基本转换规则:
字符串到整数的转换规则;
整数到字符串的转换规则;
浮点数到字符串的转换规则;
字符串到浮点数的转换规则;
布尔值到字符串的转换规则;
布尔值到字符串的转换规则。
在一种特殊的情况下,如果源输入参数和目标输入参数没有发生变化,则源输入参数和目标输入参数的数据类型和语义标签均相同,在该种情况下,实际上不需要进行任何转换,因此,本申请还可以在转换规则集合中包含恒等函数。其中,恒等函数为一无任何作用的函数,它总是传回和其参数相同的值。相应的,如果第一数据类型与第二数据类型相同,且第一语义标签与该第二语义标签相同,则将恒等函数作为第一转换规则。
在以上基础上,如果存储的自定义转换规则集合中存在与第一数据类型、第二语义标签、第二数据类型和第二语义标签匹配的第一自定义转换规则,将第一自定义转换规则确定为用于转换源输入参数的第一转换规则。
如果不存在第一自定义转换规则,且第一数据类型和第二数据类型均属于基本数据类型,同时,第一语义标签和第二语义标签相同,从设定的基本类型转换规则集合中,确定从第一数据类型转换到第二数据类型的第一基本转换规则,并将第一基本转换规则确定为用于转换源输入参数的第一转换规则。
S104,如源输入参数和目标输入参数的数据结构均属于记录类型,则针对目标输入参数中每个目标参数,从源输入参数中确定与目标参数表征同一语义的源参数,基于源参数的第三数据类型和第三语义标签以及目标参数的第四数据类型和第四语义标签,确定用于将源参数转换为目标参数的第二转换规则,并生成第二接口转换函数,第二接口转换函数为利用第二转换规则对源参数进行转换的函数。
由前面输入参数的数据结构的介绍可知,如果输入参数属于记录类型,则输入参数包括至少一个参数的名称及取值。为了便于区分,将源输入参数中包含的参数称为源参数,而将目标输入参数中的参数称为目标参数。
在源输入参数和目标输入参数为记录类型的情况下,本申请需要确定源输入参数和目标输入参数中哪些是需要相互转换的参数对,因此,需要针对目标输入参数中的每个目标参数,从源输入参数中确定需要转换为该目标参数的源参数。
可以理解的是,在源输入参数和目标输入参数都属于记录类型的情况下,如果源输入参数中的源参数与该目标参数表征同一个语义,那么该源参数就是需要转换为源输入参数中需要转换为目标参数的输入参数。
在步骤S104中,针对每个目标参数,确定源输入参数与目标参数表征同一语义的源参数可以有两种方式。如,如果源输入参数中存在与目标参数相同名称的源参数,则可以将该源参数确定为与该目标参数表征同一语义的源参数。又如,如果源输入参数中不存在与该目标参数相同名称的源参数,则可以从该源输入参数中确定语义标签与该目标参数的语义标签相同的源参数。
在该步骤S104中同样会结合针对每对源参数和目标参数,同样需要根据各自的数据类型和语义标签,确定转换规则。其中,为了便于区分,将源输入参数中源参数的数据类型称为第三数据类型,而将源参数的语义标签称为第三语义标签,并将目标输入参数中目标参数的数据类型称为第四数据类型,将目标参数的语义标签称为第四语义标签。相应的,在源输入参数和目标输入参数均为记录类型的情况下,将源参数转换为目标参数的转换规则称为第二转换规则。
与步骤S103相似,在一种确定第二转换规则的方式可以为:从存储的转换规则集合中查询与该源参数的第三数据类型和第三语义标签以及目标参数的第四数据类型和第四语义标签匹配的第二转换规则。其中,该转换规则结合至少包括用户自定义的自定义转换规则集合,该自定义转换规则集合包括多个自定义转换规则。
可选的,该自定义转换规则还可以包括基本类型转换规则集合,基本类型转换规则集合包括多个基本数据类型之间的基本转换规则。相应的,如果该源参数和目标参数的语义标签相同且二者的数据类型都属于基本数据类型,则可以先检测基本类型转换规则集合中是否存在从第三数据类型转换到第四数据类型的基本转换规则,如果存在,则可以将该基本转换规则确定为第二转换规则。
进一步的,如果源参数的第三数据类型与目标参数的第四数据类型相同,且源参数的第三语义标签与目标参数的第四语义标签相同,则将恒等函数作为第二转换规则。
在以上基础上,确定第二转换规则可以具体包括:
如果存储的自定义转换规则集合中存在与第三数据类型、第三语义标签、第四数据类型和第四语义标签匹配的第二自定义转换规则,将第二自定义转换规则确定为用于转换源输入参数的第二转换规则;
如果不存在第二自定义转换规则,第三数据类型和第四数据类型均属于基本数据类型,且第三语义标签和第四语义标签相同,从设定的基本类型转换规则集合中,确定从第三数据类型转换到第四数据类型的第二基本转换规则,并将第二基本转换规则确定为用于将源参数转换为目标参数的第二转换规则。
可以理解的是,生成接口转换函数之后,利用该接口转换函数进行接口转换时,是对源输入参数中元素的值或者参数的值进行转换,这与目前的方式相似,在此不再赘述。
由以上可知,本申请考虑到微服务接口升级前的源输入参数和微服务接口升级后的目标输入参数的数据结构的不同,设置了适合相应数据结构的接口转换函数生成方式。这样,在源输入参数和目标输入参数的数据结构确定的情况下,依据源输入参数和目标输入参数中元素或者参数的数据类型和语义标签,确定出相应的转换规则,便可以根据转换规则生成将源输入参数中的元素或者参数转换为目标输入参数所对应形式的接口转换函数,因此,无论微服务的接口定义的输入参数类型是怎样的,开发人员只需设置与需要转换的输入参数对各自的数据类型和语义标签匹配的转换规则,便可以通过本申请的方案生成用于对微服务接口升级前的源输入参数进行转换的接口转换函数,避免了开发人员针对不同接口的输入参数的不同数据结构单独开发接口转换函数的相关代码,减少了生成接口转换函数的复杂度,也有利于提高生成接口转换函数的效率。
为了便于理解,下面以一种情况为例,对本申请的接口转换函数生成方法进行介绍。如图2所示,其示出了本申请一种接口转换函数生成方法又一个实施例的流程示意图,本实施例的方法可以包括:
S201,获取微服务接口升级前的源输入参数和微服务接口升级后的目标输入参数。
S202,分别确定源输入参数和目标输入参数的数据结构,如果源输入参数和目标输入数据的数据结构均属于列表类型,则执行步骤S203;如果源输入参数和目标输入参数的数据结构均属于记录类型,则执行步骤S209。
可以理解的是,如果源输入参数和目标输入参数的数据结构不相同,或者各自的数据结构不属于列表类型或记录类型,则说明目标输入参数和源输入参数有误,则可以输出错误提示,以便开发人员确定源输入参数和目标输入参数是否有误。
S203,如果源输入参数和目标输入参数的数据结构均属于列表类型,确定源输入参数中元素的第一数据类型和第一语义标签以及目标输入参数中元素的第二数据类型和第二语义标签。
其中,源输入参数中元素的数据类型和语义标签可以在获得源输入参数的同时,获得该源输入参数中元素的数据类型和语义标签。也可以是源输入参数关联了其元素的数据类型和语义标签。
源输入参数中元素的数据类型和语义标签还可以是查询源输入参数对应的接口定义,来确定源输入参数中元素的数据类型和语义标签。如图3所示,接口语义适配生成模块可以理解为用于接口转换函数的模块,该模块与接口仓库相连,接口仓库中存储了微服务接口的接口定义,因此接口语义适配生成模块可以通过查询接口仓库确定源输入参数对应的接口定义,并最终确定数据类型和语义标签。其中,该接口仓库连接有数据类型仓库,该数据类型仓库中包含了接口定义需要用到的数据类型的定义。数据类型的定义包含数据类型的名称、语义标签和数据结构定义。在数据类型没有指明语义标签的情况下,使用数据类型的名称作为默认的语义标签。
相应的,确定目标输入参数中元素的数据类型和语义标签的方式类似,在此不再赘述。
当然,以上是举例说明,本申请确定输入参数的数据类型和语义标签的过程不加限制。
S204,判断是否第一数据类型与第二数据类型相同,且第一语义标签和第二语义标签相同,如果是,将恒等函数作为第一转换规则,并执行步骤S208;如果否,则执行步骤S205。
S205,检测自定义转换规则集合中是否存在与第一数据类型、第一语义标签、第二数据类型和第二语义标签匹配的第一自定义转换规则,如果是,则将第一自定义转换规则确定为用于转换源输入参数的第一转换规则,并执行步骤S208;如果否,则执行步骤S206。
如图3所示,在数据类型转换仓库中存储有用户自定义的各种自定义转换规则。每条自定义转换规则包含转换规则的名称,源输入参数的类型,目标输入参数的类型,转换规则定义。其中,相同的一对源输入参数的语义标签和目标输入参数的语义标签只允许最多有一条自定义转换规则。搜索转换规则时根据语义标签进行搜索,因此,相同的一对数据类型名称(源输入参数的数据类型和目标输入参数的数据类型构成的一对数据类型名称),按照语义标签的不同,可能会存在多种自定义的转换规则。
相应的,该接口语义适配器生成模块可以查询该数据类型转换仓库中存储的自定义转换规则,匹配到源数据参数的数据类型为第一数据类型且语义标签为第一语义标签,同时,目标数据参数的数据类型为第二数据类型且语义标签为第二语义标签的自定义转换规则,即第一自定义转换规则。
其中,该数据类型转换仓库中存储的自定义转换规则可以为通过数据类型转换生成模块生成。
S206,检测第一数据类型和第二数据类型是否均属于基本数据类型,且第一语义标签和第二语义标签相同,如果是,则执行步骤S207;如果否,则返回错误提示。
可以理解的是,该步骤S204到S206的顺序可以互换,如,也可以先执行步骤S206再执行步骤S205,最后再执行步骤S204;或者是,先执行步骤S205,再执行步骤S204,最后执行步骤S206等。当然,这几个步骤也可以同步执行,如果任意一个步骤中确定出第一转换规则便可以执行步骤S208,如果这三个步骤均为得到第一转换规则,则说明不存在能够转换源输入参数的转换规则,则可能是由于用户未配置相应的转换规则,从而可以输出错误提示。
可选的,考虑到实际应用中,即使有些已经存在有一些通用的转换规则,比如,前面提到的六种基本数据类型之间的转化规则等,但是开发人员可能不希望以这些转换规则来进行相应的转换,而希望以自定义的转换规则为准,在该种情况下,本申请可以先执行该步骤205,即先检测自定义转换规则集合中是否存在与第一数据类型、第一语义标签、第二数据类型和第二语义标签匹配的第一自定义转换规则,如果不存在该第一自定义转换规则的情况下,才会检测是否存在匹配的恒等函数或者基本转换规则。
其中,该错误提示用于提示用户未查找到相应的转换规则,以便用户补充相应的转换规则,或者确定出现错误的原因等。
S207,检测配置的基本类型转换规则集合中,是否存在从该第一数据类型转换到第二数据类型的第一基本转换规则,如果是,将该第一基本转换规则确定为用于转换该源输入参数的第一转换规则,并执行步骤S208;如果否,则返回错误提示。
该错误提示的作用与前面相似,在此不再赘述。
S208,基于第一转换规则生成第一接口转换函数,结束接口转换函数生成过程。
该第一接口转换函数为利用第一转换规则依次对源输入参数中各元素进行转换的函数。该第一接口转换函数就是一段用于实现利用该第一转换规则依次对源输入参数的列表中各个元素进行转换的代码。
其中,生成该第一接口转换函数的方式也可以有多种,如,在一种可能的情况中,可以构建一个转换函数模板,该转换函数模板中转换规则为待填入的规则,相应的,在确定出转换规则之后,可以填入转换函数模板,得到接口转换函数。又如,预先配置生成该第一接口转换函数的生成规则,依据该生成规则生成利用该第一转换规则依次对源输入参数的列表中各个元素进行转换的代码。当然,还可以有其他生成接口转换函数的方式,在此不再赘述。
S209,如源输入参数和目标输入参数的数据结构均属于记录类型,则针对目标输入参数中每个目标参数,检测源输入参数中是否存在与目标参数相同名称的源参数,如果是,则针对该目标参数和源参数执行步骤S211。如果否,则执行步骤S210。
S210,检测源输入参数中是否存在语义标签与该目标参数的语义标签相同的源参数,如果是,则针对该目标参数和源参数执行步骤S211;如果否,则输出错误提示。
其中,该错误提示说明源输入参数和目标输入参数中的参数存在错误,以提示开发人员核实。
S211,确定源参数的第三数据类型和第三语义标签以及目标参数的第四数据类型和第四语义标签。
该步骤S211与步骤S203相似,在此不再赘述。
S212,判断是否第三数据类型与第四数据类型相同,且第三语义标签和第四语义标签相同,如果是,将恒等函数作为第二转换规则,并执行步骤S216;如果否,则执行步骤S213。
S213,检测自定义转换规则集合中是否存在与第三数据类型、第三语义标签、第四数据类型和第四语义标签匹配的第二自定义转换规则,如果是,则将第二自定义转换规则确定为用于转换源输入参数的第二转换规则,并执行步骤S216;如果否,则执行步骤S214;
S214,检测第三数据类型和第四数据类型是否均属于基本数据类型,且第三语义标签和第四语义标签相同,如果是,则执行步骤S215;如果否,则返回错误提示。
S215,检测配置的基本类型转换规则集合中,是否存在从该第三数据类型转换到第四数据类型的第二基本转换规则,如果是,将该第二基本转换规则确定为用于转换该源参数的第二转换规则,并执行步骤S216;如果否,则返回错误提示。
该步骤S212到S215本质上与步骤S204到S207的过程相似,区别仅仅在于步骤S212到S215是基于第三数据类型和第三语义标签与第四数据类型和第四语义标签来匹配转化规则,但是实现过程和原理相似,在此不再赘述。
S216,基于第二转换规则生成第二接口转换函数。
其中,该第二接口转换函数为利用第二转换规则对源参数进行转换的函数。
需要说明的是,在源输入参数和目标输入参数为记录类型的情况下,针对每对源参数和目标参数均可以得到一个第二转换规则,因此,可以分别生成每对该源参数和目标参数对应的第二接口转换函数。
与前面生成第一接口转换函数相似,在生成该第二接口转换函数时,可以是预先构建出用于生成第二接口转换函数的转换函数模板,并将该第二转换规则填入该转换函数模板,从而得到第二接口转换函数。或者是,预先存储有用于生成第二接口转换函数的生成规则,按照该生成规则和该第二转换规则生成该第二接口函数,当然,还可以有其他可能的实现方式,在此不加限制。
可以理解的是,在得到接口转换函数之后,本申请还可以存储接口转换函数,以便后续需要进行接口转换时利用接口转换函数进行接口转换。相应的,如源输入参数和目标输入参数的数据结构均属于列表类型,将第一接口转换函数存储为与该源输入参数的第一标识和该目标输入参数的第二标识对应的接口转换函数;
如源输入参数和目标输入参数的数据结构均属于记录类型,将每对源参数和目标参数对应的第二接口转换函数存储为与源输入参数的第一标识和目标输入参数的第二标识对应的接口转换函数。
如图3,可以将生成的接口转换函数作为接口语义适配器存储到接口语义适配器仓库中。
同时,结合图3可以看出,由于本申请中可以根据需要向自定义规则仓库中新增自定义转换规则或者更改自定义转换规则,而整个接口转换函数生成流程却不会受到影响,有利于实现微服务系统的可维护性。
对应本申请的一种接口转换函数生成方法,本申请还提供了一种接口转换函数生成装置。如图4所示,其示出了本申请一种接口转换函数生成装置的一种组成结构示意图,本实施例的装置可以包括:
参数获得模块401,用于获取微服务接口升级前的源输入参数和该微服务接口升级后的目标输入参数;
结构确定模块402,用于分别确定该源输入参数和该目标输入参数的数据结构;
第一函数生成模块403,用于如该源输入参数和该目标输入参数的数据结构均属于列表类型,依据该源输入参数中元素的第一数据类型和第一语义标签以及该目标输入参数中元素的第二数据类型和第二语义标签,确定转换该源输入参数的第一转换规则,并基于该第一转换规则生成第一接口转换函数,该第一接口转换函数为利用该第一转换规则依次对该源输入参数中各元素进行转换的函数;
第二函数生成模块404,用于如该源输入参数和该目标输入参数的数据结构均属于记录类型,则针对该目标输入参数中每个目标参数,从该源输入参数中确定与该目标参数表征同一语义的源参数,基于该源参数的第三数据类型和第三语义标签以及该目标参数的第四数据类型和第四语义标签,确定将该源参数转换为该目标参数的第二转换规则,并生成第二接口转换函数,该第二接口转换函数为利用该第二转换规则对该源参数进行转换的函数。
在一种可能的实现方式中,该第一函数生成模块,包括:
第一规则确定子模块,用于如该源输入参数和该目标输入参数的数据结构均属于列表类型,依据该源输入参数中元素的第一数据类型和第一语义标签以及该目标输入参数中元素的第二数据类型和第二语义标签,从存储的转换规则集合中查询出与该第一数据类型、第一语义标签、第二数据类型和第二语义标签匹配的第一转换规则;
第一函数生成子模块,用于基于该第一转换规则生成第一接口转换函数,该第一接口转换函数为利用该第一转换规则依次对该源输入参数中各元素进行转换的函数;
相应的,第二函数生成模块,包括:
参数配对子模块,用于如该源输入参数和该目标输入参数的数据结构均属于记录类型,则针对该目标输入参数中每个目标参数,从该源输入参数中确定与该目标参数表征同一语义的源参数,
第二规则确定子模块,用于针对该参数配对单元确定出每对源参数和目标参数,从存储的转换规则集合中查询与该源参数的第三数据类型和第三语义标签以及目标参数的第四数据类型和第四语义标签匹配的第二转换规则;
第二函数生成子模块,用于生成第二接口转换函数。
可选的,该第一规则确定子模块在从存储的转换规则集合中查询出与该第一数据类型、第一语义标签、第二数据类型和第二语义标签匹配的第一转换规则时,具体为:
如果该第一数据类型与该第二数据类型相同,且该第一语义标签与该第二语义标签相同,则将恒等函数作为第一转换规则;
如果存储的自定义转换规则集合中存在与该第一数据类型、第二语义标签、第二数据类型和第二语义标签匹配的第一自定义转换规则,将该第一自定义转换规则确定为用于转换该源输入参数的第一转换规则;
如果不存在该第一自定义转换规则,该第一数据类型和第二数据类型均属于基本数据类型,且该第一语义标签和第二语义标签相同,从设定的基本类型转换规则集合中,确定从该第一数据类型转换到第二数据类型的第一基本转换规则,并将该第一基本转换规则确定为用于转换该源输入参数的第一转换规则。
可选的,该第二规则确定子模块,在从存储的转换规则集合中查询与该源参数的第三数据类型和第三语义标签以及目标参数的第四数据类型和第四语义标签匹配的第二转换规则时,具体为:
如果该第三数据类型与该第四数据类型相同,且该第三语义标签与该第四语义标签相同,则将恒等函数作为第二转换规则;
如果存储的自定义转换规则集合中存在与该第三数据类型、第三语义标签、第四数据类型和第四语义标签匹配的第二自定义转换规则,将该第二自定义转换规则确定为用于转换该源输入参数的第二转换规则;
如果不存在该第二自定义转换规则,该第三数据类型和第四数据类型均属于基本数据类型,且该第三语义标签和第四语义标签相同,从设定的基本类型转换规则集合中,确定从该第三数据类型转换到第四数据类型的第二基本转换规则,并将该第二基本转换规则确定为用于将该源参数转换为该目标参数的第二转换规则。
可选的,参数配对子模块在该从该源输入参数中确定与该目标参数表征同一语义的源参数时,具体为:
如果该源输入参数中存在与该目标参数相同名称的源参数,将该源参数确定为与该目标参数表征同一语义的源参数;
如果该源输入参数中不存在与该目标参数相同名称的源参数,则从该源输入参数中确定语义标签与该目标参数的语义标签相同的源参数。
在一种可能的实现方式中,本申请以上装置中,还可以包括:
第一函数存储模块,用于如该源输入参数和该目标输入参数的数据结构均属于列表类型,将该第一接口转换函数存储为与该源输入参数的第一标识和该目标输入参数的第二标识对应的接口转换函数;
第二函数存储模块,用于如该源输入参数和该目标输入参数的数据结构均属于记录类型,每对源参数和目标参数对应的第二接口转换函数存储为与该源输入参数的第一标识和该目标输入参数的第二标识对应的接口转换函数。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。
对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
以上仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。
Claims (10)
1.一种接口转换函数生成方法,其特征在于,包括:
获取微服务接口升级前的源输入参数和所述微服务接口升级后的目标输入参数;
分别确定所述源输入参数和所述目标输入参数的数据结构;
如所述源输入参数和所述目标输入参数的数据结构均属于列表类型,依据所述源输入参数中元素的第一数据类型和第一语义标签以及所述目标输入参数中元素的第二数据类型和第二语义标签,确定转换所述源输入参数的第一转换规则,并基于所述第一转换规则生成第一接口转换函数,所述第一接口转换函数为利用所述第一转换规则依次对所述源输入参数中各元素进行转换的函数;
如所述源输入参数和所述目标输入参数的数据结构均属于记录类型,则针对所述目标输入参数中每个目标参数,从所述源输入参数中确定与所述目标参数表征同一语义的源参数,基于所述源参数的第三数据类型和第三语义标签以及所述目标参数的第四数据类型和第四语义标签,确定将所述源参数转换为所述目标参数的第二转换规则,并生成第二接口转换函数,所述第二接口转换函数为利用所述第二转换规则对所述源参数进行转换的函数。
2.根据权利要求1所述的方法,其特征在于,所述依据所述源输入参数中元素的第一数据类型和第一语义标签以及所述目标输入参数中元素的第二数据类型和第二语义标签,确定转换所述源输入参数的第一转换规则,包括:
依据所述源输入参数中元素的第一数据类型和第一语义标签以及所述目标输入参数中元素的第二数据类型和第二语义标签,从存储的转换规则集合中查询出与所述第一数据类型、第一语义标签、第二数据类型和第二语义标签匹配的第一转换规则;
所述基于所述源参数的第三数据类型和第三语义标签以及所述目标参数的第四数据类型和第四语义标签,确定将所述源参数转换为目标参数的第二转换规则,包括:
从存储的转换规则集合中查询与所述源参数的第三数据类型和第三语义标签以及目标参数的第四数据类型和第四语义标签匹配的第二转换规则。
3.根据权利要求2所述的方法,其特征在于,所述从存储的转换规则集合中查询出与所述第一数据类型、第一语义标签、第二数据类型和第二语义标签匹配的第一转换规则,包括:
如果所述第一数据类型与所述第二数据类型相同,且所述第一语义标签与所述第二语义标签相同,则将恒等函数作为第一转换规则;
如果存储的自定义转换规则集合中存在与所述第一数据类型、第二语义标签、第二数据类型和第二语义标签匹配的第一自定义转换规则,将所述第一自定义转换规则确定为用于转换所述源输入参数的第一转换规则;
如果不存在所述第一自定义转换规则,所述第一数据类型和第二数据类型均属于基本数据类型,且所述第一语义标签和第二语义标签相同,从设定的基本类型转换规则集合中,确定从所述第一数据类型转换到第二数据类型的第一基本转换规则,并将所述第一基本转换规则确定为用于转换所述源输入参数的第一转换规则。
4.根据权利要求2所述的方法,其特征在于,所述从存储的转换规则集合中查询与所述源参数的第三数据类型和第三语义标签以及目标参数的第四数据类型和第四语义标签匹配的第二转换规则,包括:
如果所述第三数据类型与所述第四数据类型相同,且所述第三语义标签与所述第四语义标签相同,则将恒等函数作为第二转换规则;
如果存储的自定义转换规则集合中存在与所述第三数据类型、第三语义标签、第四数据类型和第四语义标签匹配的第二自定义转换规则,将所述第二自定义转换规则确定为用于转换所述源输入参数的第二转换规则;
如果不存在所述第二自定义转换规则,所述第三数据类型和第四数据类型均属于基本数据类型,且所述第三语义标签和第四语义标签相同,从设定的基本类型转换规则集合中,确定从所述第三数据类型转换到第四数据类型的第二基本转换规则,并将所述第二基本转换规则确定为用于将所述源参数转换为所述目标参数的第二转换规则。
5.根据权利要求1所述的方法,其特征在于,所述从所述源输入参数中确定与所述目标参数表征同一语义的源参数,包括:
如果所述源输入参数中存在与所述目标参数相同名称的源参数,将所述源参数确定为与所述目标参数表征同一语义的源参数;
如果所述源输入参数中不存在与所述目标参数相同名称的源参数,则从所述源输入参数中确定语义标签与所述目标参数的语义标签相同的源参数。
6.根据权利要求1至5任一项所述的方法,其特征在于,还包括:
如所述源输入参数和所述目标输入参数的数据结构均属于列表类型,将所述第一接口转换函数存储为与所述源输入参数的第一标识和所述目标输入参数的第二标识对应的接口转换函数;
如所述源输入参数和所述目标输入参数的数据结构均属于记录类型,每对源参数和目标参数对应的第二接口转换函数存储为与所述源输入参数的第一标识和所述目标输入参数的第二标识对应的接口转换函数。
7.一种接口转换函数生成装置,其特征在于,包括:
参数获得模块,用于获取微服务接口升级前的源输入参数和所述微服务接口升级后的目标输入参数;
结构确定模块,用于分别确定所述源输入参数和所述目标输入参数的数据结构;
第一函数生成模块,用于如所述源输入参数和所述目标输入参数的数据结构均属于列表类型,依据所述源输入参数中元素的第一数据类型和第一语义标签以及所述目标输入参数中元素的第二数据类型和第二语义标签,确定转换所述源输入参数的第一转换规则,并基于所述第一转换规则生成第一接口转换函数,所述第一接口转换函数为利用所述第一转换规则依次对所述源输入参数中各元素进行转换的函数;
第二函数生成模块,用于如所述源输入参数和所述目标输入参数的数据结构均属于记录类型,则针对所述目标输入参数中每个目标参数,从所述源输入参数中确定与所述目标参数表征同一语义的源参数,基于所述源参数的第三数据类型和第三语义标签以及所述目标参数的第四数据类型和第四语义标签,确定将所述源参数转换为所述目标参数的第二转换规则,并生成第二接口转换函数,所述第二接口转换函数为利用所述第二转换规则对所述源参数进行转换的函数。
8.根据权利要求7所述的装置,其特征在于,所述第一函数生成模块,包括:
第一规则确定子模块,用于如所述源输入参数和所述目标输入参数的数据结构均属于列表类型,依据所述源输入参数中元素的第一数据类型和第一语义标签以及所述目标输入参数中元素的第二数据类型和第二语义标签,从存储的转换规则集合中查询出与所述第一数据类型、第一语义标签、第二数据类型和第二语义标签匹配的第一转换规则;
第一函数生成子模块,用于基于所述第一转换规则生成第一接口转换函数,所述第一接口转换函数为利用所述第一转换规则依次对所述源输入参数中各元素进行转换的函数;
所述第二函数生成模块,包括:
参数配对子模块,用于如所述源输入参数和所述目标输入参数的数据结构均属于记录类型,则针对所述目标输入参数中每个目标参数,从所述源输入参数中确定与所述目标参数表征同一语义的源参数,
第二规则确定子模块,用于针对所述参数配对单元确定出每对源参数和目标参数,从存储的转换规则集合中查询与所述源参数的第三数据类型和第三语义标签以及目标参数的第四数据类型和第四语义标签匹配的第二转换规则;
第二函数生成子模块,用于生成第二接口转换函数。
9.根据权利要求8所述的装置,其特征在于,所述第一规则确定子模块在从存储的转换规则集合中查询出与所述第一数据类型、第一语义标签、第二数据类型和第二语义标签匹配的第一转换规则时,具体为:
如果所述第一数据类型与所述第二数据类型相同,且所述第一语义标签与所述第二语义标签相同,则将恒等函数作为第一转换规则;
如果存储的自定义转换规则集合中存在与所述第一数据类型、第二语义标签、第二数据类型和第二语义标签匹配的第一自定义转换规则,将所述第一自定义转换规则确定为用于转换所述源输入参数的第一转换规则;
如果不存在所述第一自定义转换规则,所述第一数据类型和第二数据类型均属于基本数据类型,且所述第一语义标签和第二语义标签相同,从设定的基本类型转换规则集合中,确定从所述第一数据类型转换到第二数据类型的第一基本转换规则,并将所述第一基本转换规则确定为用于转换所述源输入参数的第一转换规则。
10.根据权利要求8所述的装置,其特征在于,第二规则确定子模块,在从存储的转换规则集合中查询与所述源参数的第三数据类型和第三语义标签以及目标参数的第四数据类型和第四语义标签匹配的第二转换规则时,具体为:
如果所述第三数据类型与所述第四数据类型相同,且所述第三语义标签与所述第四语义标签相同,则将恒等函数作为第二转换规则;
如果存储的自定义转换规则集合中存在与所述第三数据类型、第三语义标签、第四数据类型和第四语义标签匹配的第二自定义转换规则,将所述第二自定义转换规则确定为用于转换所述源输入参数的第二转换规则;
如果不存在所述第二自定义转换规则,所述第三数据类型和第四数据类型均属于基本数据类型,且所述第三语义标签和第四语义标签相同,从设定的基本类型转换规则集合中,确定从所述第三数据类型转换到第四数据类型的第二基本转换规则,并将所述第二基本转换规则确定为用于将所述源参数转换为所述目标参数的第二转换规则。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911401612.0A CN111142852B (zh) | 2019-12-30 | 2019-12-30 | 接口转换函数生成方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911401612.0A CN111142852B (zh) | 2019-12-30 | 2019-12-30 | 接口转换函数生成方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111142852A true CN111142852A (zh) | 2020-05-12 |
CN111142852B CN111142852B (zh) | 2023-10-27 |
Family
ID=70522148
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911401612.0A Active CN111142852B (zh) | 2019-12-30 | 2019-12-30 | 接口转换函数生成方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111142852B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023159573A1 (zh) * | 2022-02-28 | 2023-08-31 | 西门子股份公司 | 接口映射方法、装置、电子设备和计算机可读介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101958987A (zh) * | 2009-07-14 | 2011-01-26 | 中国电信股份有限公司 | 电信业务数据动态转换的方法及其系统 |
CN103034499A (zh) * | 2012-12-13 | 2013-04-10 | 中国航空无线电电子研究所 | 机载设备网络数据传输通用的数据格式转换方法及其系统 |
CN106919434A (zh) * | 2017-03-22 | 2017-07-04 | 恒生电子股份有限公司 | 一种代码生成方法及装置 |
CN108664546A (zh) * | 2018-03-26 | 2018-10-16 | 武汉船舶通信研究所(中国船舶重工集团公司第七二二研究所) | Xml数据结构转换方法和装置 |
CN109246251A (zh) * | 2018-11-13 | 2019-01-18 | 杭州数梦工场科技有限公司 | 一种微服务调用方法、装置、系统、设备及可读存储介质 |
CN109783074A (zh) * | 2018-12-11 | 2019-05-21 | 平安科技(深圳)有限公司 | 程序编写的数据类型转换方法、电子设备 |
CN110222407A (zh) * | 2019-05-29 | 2019-09-10 | 北京飞渡科技有限公司 | 一种bim数据的融合方法及装置 |
-
2019
- 2019-12-30 CN CN201911401612.0A patent/CN111142852B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101958987A (zh) * | 2009-07-14 | 2011-01-26 | 中国电信股份有限公司 | 电信业务数据动态转换的方法及其系统 |
CN103034499A (zh) * | 2012-12-13 | 2013-04-10 | 中国航空无线电电子研究所 | 机载设备网络数据传输通用的数据格式转换方法及其系统 |
CN106919434A (zh) * | 2017-03-22 | 2017-07-04 | 恒生电子股份有限公司 | 一种代码生成方法及装置 |
CN108664546A (zh) * | 2018-03-26 | 2018-10-16 | 武汉船舶通信研究所(中国船舶重工集团公司第七二二研究所) | Xml数据结构转换方法和装置 |
CN109246251A (zh) * | 2018-11-13 | 2019-01-18 | 杭州数梦工场科技有限公司 | 一种微服务调用方法、装置、系统、设备及可读存储介质 |
CN109783074A (zh) * | 2018-12-11 | 2019-05-21 | 平安科技(深圳)有限公司 | 程序编写的数据类型转换方法、电子设备 |
CN110222407A (zh) * | 2019-05-29 | 2019-09-10 | 北京飞渡科技有限公司 | 一种bim数据的融合方法及装置 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023159573A1 (zh) * | 2022-02-28 | 2023-08-31 | 西门子股份公司 | 接口映射方法、装置、电子设备和计算机可读介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111142852B (zh) | 2023-10-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10324909B2 (en) | Omega names: name generation and derivation utilizing nested three or more attributes | |
US8984396B2 (en) | Identifying and representing changes between extensible markup language (XML) files using symbols with data element indication and direction indication | |
US20150143355A1 (en) | Service oriented architecture version and dependency control | |
CN104461531A (zh) | 一种报表系统自定义函数的实现方法 | |
JP2002099561A (ja) | データ変換方法およびデータ変換システム並びに記憶媒体 | |
CN109189395B (zh) | 一种数据解析方法及装置 | |
CN111460241A (zh) | 一种数据查询方法、装置、电子设备及存储介质 | |
CN115016784B (zh) | 低代码应用复用方法、应用解析系统、设备及存储介质 | |
CN115098062A (zh) | 一种代码生成方法及装置 | |
CN111142852B (zh) | 接口转换函数生成方法和装置 | |
CN113111669B (zh) | 基于增量的前端多语言国际化翻译方法及装置 | |
CN112596719B (zh) | 一种生成前后端代码的方法和系统 | |
CN113590115A (zh) | 一种业务系统代码自动生成方法及装置 | |
CN112527738A (zh) | 项目描述文件优化方法、系统及存储介质 | |
CN115426416B (zh) | 一种协议转换方法及装置、电子设备及存储介质 | |
CN111488144A (zh) | 一种数据处理方法以及设备 | |
CN111045660A (zh) | 一种网上税务申报数据校验方法、装置及存储介质 | |
CN113641523B (zh) | 一种日志处理方法及装置 | |
Le Zou et al. | On synchronizing with web service evolution | |
CN114281688A (zh) | 一种无码或低码的自动化用例管理方法和装置 | |
CN111352824B (zh) | 测试方法、装置及计算机设备 | |
CN112307736A (zh) | 一种应用项目创建方法、装置、设备及存储介质 | |
CN112130860B (zh) | Json对象解析方法、装置、电子设备及存储介质 | |
Ivkovic et al. | Using formal concept analysis to establish model dependencies | |
CN110647568A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |