CN106874181A - 一种接口转换的验证方法和装置 - Google Patents

一种接口转换的验证方法和装置 Download PDF

Info

Publication number
CN106874181A
CN106874181A CN201610488017.5A CN201610488017A CN106874181A CN 106874181 A CN106874181 A CN 106874181A CN 201610488017 A CN201610488017 A CN 201610488017A CN 106874181 A CN106874181 A CN 106874181A
Authority
CN
China
Prior art keywords
property
attribute
attribute information
mapping relations
property set
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
Application number
CN201610488017.5A
Other languages
English (en)
Other versions
CN106874181B (zh
Inventor
李洲晖
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Advanced Nova Technology Singapore Holdings Ltd
Original Assignee
Alibaba Group Holding Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201610488017.5A priority Critical patent/CN106874181B/zh
Publication of CN106874181A publication Critical patent/CN106874181A/zh
Application granted granted Critical
Publication of CN106874181B publication Critical patent/CN106874181B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)

Abstract

本申请公开了一种接口转换的验证方法和装置,用于提高接口转换验证的效率。该方法包括:获取第一对象和所述第一对象的第一属性信息,以及获取第二对象和所述第二对象的第二属性信息,所述第一对象由所述第二对象经接口转换得到;根据配置文件中存储的不同对象的属性信息之间的映射关系,判断所述第一属性信息与所述第二属性信息之间是否存在映射关系;根据判断结果验证所述接口的转换功能是否正确。

Description

一种接口转换的验证方法和装置
技术领域
本申请涉及计算机技术领域,尤其涉及一种接口转换的验证方法和装置。
背景技术
随着网络技术的发展,web应用作为典型的网络应用已经渗透到社会的各个层面,网上银行、电子购物、资源共享等已经悄无声息地改变着我们传统的生活方式。web应用可以通过外部接口对外提供服务,在一些场景下,服务使用方使用单个web应用作为访问服务的统一入口,通过该web应用来访问下游各内部应用的内部接口,从而避免与多个不同内部应用进行交互,简化服务使用方的实现逻辑。
在上述应用场景下,web应用在访问内部应用时通过内部接口获取内部对象,通过web应用中的外部接口将该内部对象转换为外部对象。为了确保各内部应用返回的内部对象被正确转换为外部对象,通常需要对外部接口的转换功能进行验证,进而保证外部接口的功能的正确性。
在现有技术中验证外部接口的转换功能时,通常是编写相应的验证代码后,首先获取经过所述外部接口转换后的外部对象的属性,以及相对应的内部对象的属性,然后按照验证代码中的转换规则对内部对象的属性进行处理得到期望的属性并与外部对象的属性进行逐一比对,进而验证接口的转换功能。通过该验证方法,当内部对象和外部对象中新增属性或者是对原有的属性规则进行修改时,上述验证代码则有可能运行失败,不得不对验证代码进行编译并重新发布,导致接口转换验证的效率较低。
发明内容
为解决上述技术问题,本申请实施例提供一种接口转换的验证方法和装置,用于提高接口转换验证的效率。
本申请实施例采用下述技术方案:
一种接口转换的验证方法,所述方法包括:获取第一对象和所述第一对象的第一属性信息,以及获取第二对象和所述第二对象的第二属性信息,所述第一对象由所述第二对象经接口转换得到;根据配置文件中存储的不同对象的属性信息之间的映射关系,判断所述第一属性信息与所述第二属性信息之间是否存在映射关系;根据判断结果验证所述接口的转换功能是否正确。
优选地,在获取第一对象和第二对象之后,所述方法还包括:根据所述第一对象确定第一属性集,以及根据所述第二对象确定第二属性集;根据配置文件中存储的不同对象的属性信息之间的映射关系,判断所述第一属性信息与所述第二属性信息之间是否存在映射关系,包括:根据所述第一属性集中包含的第一属性的属性名称以及第二属性集中包含的第二属性的属性名称;和/或,第一属性集中包含的第一属性的属性值以及第二属性集中包含的第二属性的属性值,判断所述第一属性信息与所述第二属性信息之间是否存在映射关系。
优选地,根据所述第一属性集中包含的第一属性的属性名称以及第二属性集中包含的第二属性的属性名称,判断所述第一属性信息与所述第二属性信息之间是否存在映射关系,包括:将配置文件中包含的属性名称分别与所述第一属性集中包含的第一属性的属性名称以及第二属性集中包含的第二属性的属性名称进行匹配;根据匹配结果,判断所述第一属性信息与所述第二属性信息之间是否存在映射关系。
优选地,根据匹配结果,判断所述第一属性信息与所述第第二属性信息之间是否存在映射关系,包括:若配置文件中包含的属性名称分别与所述第一属性集中包含的第一属性的属性名称以及第二属性集中包含的第二属性的属性名称匹配成功,则确定所述第一属性信息与所述第二属性信息之间存在映射关系。
优选地,在确定第一属性集以及确定第二属性集之后,所述方法还包括:根据所述第一属性集中包含的属性名称和所述第二属性集中包含的属性名称,确定所述第一属性集与所述第二属性集的属性交集;根据所述第一属性集中包含的第一属性的属性名称以及第二属性集中包含的第二属性的属性名称,判断所述第一属性信息与所述第二属性信息之间是否存在映射关系,包括:将配置文件中包含的属性名称与所述属性交集中包括的属性名称进行匹配;根据匹配结果,判断所述第一属性信息与所述第二属性信息之间是否存在映射关系。
优选地,根据第一属性集中包含的第一属性的属性值以及第二属性集中包含的第二属性的属性值,判断所述第一属性信息与所述第二属性信息之间是否存在映射关系,包括:判断所述第一属性集中包含的第一属性的属性值与所述第二属性集中包含的第二属性的属性值是否相等;若判断结果为是,则确定所述第一属性信息与所述第二属性信息之间存在映射关系。
优选地,根据第一属性集中包含的第一属性的属性值以及第二属性集中包含的第二属性的属性值,判断所述第一属性信息与所述第二属性信息之间是否存在映射关系,包括:判断所述第一属性集中包含的第一属性的属性值与所述第二属性集中包含的第二属性的属性值是否满足设定运算规则和/或类型转换规则;若判断结果为是,则确定所述第一属性信息与所述第二属性信息之间存在映射关系。
优选地,所述第一属性集利用编程语言的反射机制获取,和/或,所述第二属性集利用编程语言的反射机制获取。
优选地,根据判断结果验证所述接口的转换功能是否正确,包括:若判断结果为是,则验证所述接口的转换功能正确;若判断结果为否,则验证所述接口的转换功能不正确。
一种接口转换的验证装置,所述装置包括:对象获取模块、判断模块和验证模块,其中,所述对象获取模块,获取第一对象和所述第一对象的第一属性信息,以及获取第二对象和所述第二对象的第二属性信息,所述第一对象由所述第二对象经接口转换得到;所述判断模块,根据配置文件中存储的不同对象的属性信息之间的映射关系,判断所述第一属性信息与所述第二属性信息之间是否存在映射关系;所述验证模块,根据判断模块的判断结果验证所述接口的转换功能是否正确。
优选地,所述装置还包括属性集处理模块,其中,所述属性集处理模块,根据所述第一对象确定第一属性集,以及根据所述第二对象确定第二属性集;所述判断模块,根据所述第一属性集中包含的第一属性的属性名称以及第二属性集中包含的第二属性的属性名称;和/或,第一属性集中包含的第一属性的属性值以及第二属性集中包含的第二属性的属性值,判断所述第一属性信息与所述第二属性信息之间是否存在映射关系。
优选地,所述验证模块根据判断模块的判断结果验证所述接口的转换功能是否正确,包括:若判断结果为是,则验证模块验证所述接口的转换功能正确;若判断结果为否,则验证模块验证所述接口的转换功能不正确。
本申请实施例采用的上述至少一个技术方案能够达到以下有益效果:在接口转换验证中,获取到第一对象的第一属性信息和第二对象的第二属性信息后,根据配置文件中存储的不同对象的属性信息之间的映射关系,判断第一属性信息与第二属性信息之间是否存在映射关系,最后根据判断结果验证所述接口的转换功能是否正确。通过读取配置文件的方式获取属性信息之间的映射关系,当第一对象和第二对象中新增属性信息或者是对原有的属性信息映射关系进行修改时,改变内容体现在配置文件而非验证代码中,避免了验证代码出现错误,提高接口转换验证的效率;同时,属性信息中属性之间的映射关系清晰明了,尽可能避免了编码可能导致的错误和遗漏,进一步提高接口转换验证的效率。另外,通过该方法的实施,可以利用维护简单配置文件的方式代替现有技术中维护冗长的java验证代码,有效降低了维护成本。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请实施例提供的接口转换的验证方法的实现流程示意图;
图2为本申请另一实施例提供的接口转换的验证方法的应用场景示意图;
图3为图2所示实施例的具体实现流程示意图;
图4为本申请实施例提供的接口转换的验证装置结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
如图1所示,该图示出了接口转换的验证方法的一个实施例,该实施例提供的方法可以应用在接口开发以及接口的日常维护中验证接口的转换功能是否正确。上述提到的接口可以是具体应用在web应用中且为服务使用方提供服务,例如将web应用获取到的对象,经接口转换为服务使用方所需的对象。接口转换功能的验证,其关注的焦点可以是对象的初始状态即第二对象和接口转换后改变到的状态即第一对象,下面对图1所示的实施例进行详细介绍。
步骤S11:获取第一对象和所述第一对象的第一属性信息,以及获取第二对象和所述第二对象的第二属性信息,所述第一对象由所述第二对象经接口转换得到;
该步骤中提到的第一对象以及第二对象(统称为对象)可以为能够独立存在于系统中的资源。对于每一个对象而言,其本身包含或者说是具有属性信息,这些属性信息可以是属性的属性名称、属性的属性值又或者是属性的属性类型等。另外,每个对象包含的属性个数又可以是多个,即大量的属性名称、属性值和属性类型等构成上述属性信息。例如第一对象包括有三个第一属性,按属性名称分别为属性a、属性b、属性c;第二对象包括有五个第二属性,按属性名称分别为属性a、属性b、属性C、属性D、属性E。另外,对应于每个属性名称,均有具体的属性值,以及属性类型(整形、字符串等)等。
第一对象是由第二对象经上述接口的转换功能转换得到,通常而言,一次验证过程中第一对象的数量可以为一个,同时第二对象的数量为至少一个,即一个或者多个第二对象经由待验证的接口的转换功能转换成对应的一个第一对象。当然不排除一个第二对象转换为多个第一对象、多个第二对象转换为多个第一对象、一个第二对象转换为一个第一对象等情形。
步骤S12:根据配置文件中存储的不同对象的属性信息之间的映射关系,判断所述第一属性信息与所述第二属性信息之间是否存在映射关系;
配置文件中可以包括有第一属性信息、第二属性信息以及第一属性信息和第二属性信息之间的映射关系,当然还可以包括有其它对象的属性信息。这些属性信息可以以属性名称的方式体现,即配置文件中的第一属性的属性名称的数量可以为一个或者多个,同理,配置文件中的第二属性的属性名称的数量也可以至少为一个或者多个。另外,配置文件的文件格式可以为文本文件、xml、jason、ini等格式。
具体而言,在配置文件中可以列出第一对象中“应该包括”的第一属性的属性名称,以及与上述第一属性的属性名称相对应的第二属性的属性名称,当然第二属性是包含于第二对象,因此在配置文件中还可以列出第二对象,其中第二对象的个数也可能是一个或者多个。该处提到的“第一对象中‘应该包括’的第一属性的属性名称”,即假设所述接口的转换功能完全正确时,转换得到的第一对象中包括的第一属性的属性名称。
另外,配置文件中还可以存储第一属性信息和第二属性信息之间的映射关系,即将第二属性信息转变成第一属性信息的转换规则,该转换规则可以包括运算关系和/或类型转换关系和/或属性名称对应关系等,例如第二属性a转换为第一属性a,其中a为属性名称,该处的转换规则为简单的属性名称对应关系;又例如将第二属性B转换为第一属性b,其中B和b为属性名称,且第一属性b的属性值等于十倍的第二属性B的属性值,另外,第一属性b和第二属性B的属性值的类型还可能不同,上述映射关系中还可以包括将第一属性b或第二属性B转换成相同类型的转换规则等,该处的映射关系既包括属性名称对应关系,又包括运算关系,还可以包括类型转换关系。
在步骤S11中获取到第一对象的第一属性信息,第二对象的第二属性信息,第一属性信息包括第一属性的属性值和属性名称;第二属性信息包括第二属性的属性值和属性名称。在获取上述属性名称以及属性值时,可以是利用编程语言的反射机制获取到,当然还可以利用编程语言的反射机制根据所述第一对象获取第一属性集,以及根据所述第二对象获取第二属性集,其中第一属性集包括有第一对象的所有属性名称以及每一个属性名称对应的属性值;同理,第二属性集包括有第二对象的所有属性名称以及每一个属性名称对应的属性值。
拥有反射机制的编程语言如C#,Smalltalk,Python,Ruby等均可实现。该步骤中当然还可以利用其他的获取方法从步骤S11中获取到的第一对象以及第二对象中去获取第一属性集和第二属性集。
该步骤中可以利用读取配置文件的方式获知不同对象的属性信息之间的映射关系,此外,在判断所述第一属性信息与所述第二属性信息之间是否存在映射关系时:
如果上述映射关系是仅仅是属性名称的对应关系,则可以采用属性名称匹配的方法,例如配置文件中的第一属性a和第二属性b之间存在映射关系,首先用属性a与第一对象中(也可以是第一属性集中)包含的所有第一属性按属性名称相匹配,如果匹配成功,即获取到的第一对象中包括有第一属性a,则将配置文件中的第二属性b与第二对象(也可以是第二属性集中)包括的所有第二属性按照属性名称进行匹配,如果匹配成功,即第二对象中包括有第二属性b,第一对象中包括的第一属性a和第二对象包含的第二属性b存在映射关系。如果上述两个匹配过程中有任一个匹配不成功,则表明不存在映射关系。
如果上述映射关系是属性值之间是否相等和/或存在运算关系和/或存在类型转换关系,由于与一个第一属性对应的第二属性可能有一个或者多个,当对应的第二属性为一个时,即第一属性与第二属性之间为一一对应关系,则可以直接判断属性值是否相等。另外,根据该第一属性的属性值和第二属性的属性值进行对比时,如需类型转换则根据配置文件中的映射关系将第一属性的属性值或第二属性的属性值转换为相同的类型后再进行对比;如需计算则将第二属性的属性经过计算后再与第一属性的属性值进行对比;当然还存在同时将第二属性的属性值经过类型转换以及运算的情况。对于上述几种情况,如果类型转换或者是运算后的属性值相等,则该第一属性验证通过,继续验证第一对象中的其它第一属性即可;如果不相等,则该第一属性验证失败。
当与一个第一属性对应的第二属性为多个时,根据配置文件中的映射关系将多个第二属性的属性值进行预设运算,如需类型转换则转换为相同的类型,再将运算后的多个第二属性的属性值与第一属性的属性值进行对比,如果相等,则该第一属性验证通过,继续验证第一对象中的其它第一属性即可;如果不相等,则该第一属性验证失败。
需要说明的是,上述将属性名称和属性值是否存在映射关系的判断过程分开进行描述,实际应用中,对于大多数的第一对象和第二对象而言,通常需要同时对属性名称和属性值是否只存在映射关系进行判断,因此,可以结合上述两种方法,即首先判断属性名称是否存在映射关系,如果是,则继续判断属性值是否存在映射关系,如果属性名称和属性值均存在映射关系,则确定所述第一对象的所述第一属性与所述第二对象的所述第二属性之间存在映射关系。
步骤S13:根据判断结果验证所述接口的转换功能是否正确。
步骤S12的示例列出了属性信息中其中一个属性的映射关系的判断方法,属性名称呈映射关系和/或属性值呈映射关系可以是属性信息呈映射关系的前提,通常还可以按照上述方法对第一对象中包括的所有第一属性进行验证,以及第二对象中包括的全部或者是部分第二属性进行验证,即判断第一对象包含的第一属性信息与所述第二对象包含的所有或者是部分第二属性信息之间是否存在映射关系。此判断标准简单而言可以是验证步骤S11中获取到的第一对象是否包含了“应该包括”的第一属性的属性名称,以及属性值是否转换正确。最后将第一对象中包括的所有第一属性以及第二对象中包括的全部或者部分第二属性验证通过,即第一属性信息与第二属性信息之间存在映射关系,则可以表示该接口转换功能验证通过;如果有任何一个属性的验证过程出现错误,则验证所述接口的转换功能不正确
采用该实施例提供的该方法,在接口转换验证中,获取到第一对象的第一属性信息和第二对象的第二属性信息后,根据配置文件中不同对象的属性信息之间的映射关系,判断第一属性信息与第二属性信息之间是否存在映射关系,最后根据判断结果验证所述接口的转换功能是否正确。通过读取配置文件的方式获取属性信息之间的映射关系,当第一对象和第二对象中新增属性信息或者是对原有的属性信息映射关系进行修改时,该改变内容体现在配置文件而非验证代码中,避免了验证代码出现错误,提高接口转换验证的效率;属性信息中属性之间的映射关系清晰明了,尽可能避免了编码可能导致的错误和遗漏,进一步提高接口转换验证的效率。另外,通过该方法的实施,可以利用维护简单配置文件的方式代替现有技术中维护冗长的java验证代码,有效降低了维护成本。
需要说明的是,上述实施例中提到的第一属性信息、第一属性、第一属性的属性值、第二属性信息、第二属性、第二属性的属性值以及的第一属性集、第二属性集中的“第一”和“第二”也只是为了便于区分,其本身不具有特定的含义。
上述实施例中,在配置文件中可以列出有第一属性信息和第二属性信息之间的映射关系,上述映射关系可以包括属性名称对应关系,运算关系,以及类型转换关系等中的一种或几种关系的组合,在实际应用中还可以存在这样的情况:第一对象中包括有大量的第一属性,有些第一属性的属性值是第二属性的属性值经运算关系,以及类型转换关系等中的一种或几种关系的组合处理后得到;有些第一属性是接口按照第二属性进行的相同属性名称的拷贝,即第一属性的属性名称与第二属性的属性名称相同时,且两者之间不存在运算关系和类型转换关系,这种情况下对于简单属性名称拷贝的属性,在配置文件中可以简单的列出第一属性的属性名称或第二属性的属性名称(两者的属性名称相同)。因此,在上述实施例的步骤S11中获取第一对象和第二对象之后,所述方法还可以包括以下步骤:根据所述第一对象确定第一属性集,以及根据所述第二对象确定第二属性集,并根据所述第一属性集中包含的属性名称和所述第二属性集中包含的属性名称,确定所述第一属性集与所述第二属性集的属性交集。那么,上述实施例的步骤S12中则根据配置文件中存储的不同对象的属性信息之间的映射关系,判断所述第一属性信息与所述第二属性信息之间是否存在映射关系则可以为:结合配置文件中的属性名称,根据所述属性交集中包含的属性名称,判断所述第一属性信息与所述第二属性信息之间是否存在映射关系。
如果所述第一属性的属性名称与所述第二属性的属性名称相同,且所述交集中包含有与第一属性的属性名称或第二属性的属性名称相同的属性名称(如需进行属性值进行判断则对属性值进行判断且属性值验证通过),则确定所述第一属性与所述第二属性之间存在映射关系。对于其它的并非进行相同属性名称拷贝的属性,则还可以按照上述实施例步骤S12的方法判断是否存在映射关系。
实际上,当第一对象中的有些第一属性是接口按照第二属性进行的相同属性名称的拷贝,即第一属性的属性名称与第二属性的属性名称相同时,这种情况下该第一属性的属性名称、第二属性的属性名称还可以不在配置文件中列出,由验证系统进行自动匹配。根据上述实现逻辑,之前第一个实施例的步骤S11中获取第一对象和第二对象之后,该实施例还可以根据所述第一对象获取第一属性集,根据所述第二对象获取第二属性集,以及根据所述第一属性集中包含的属性名称和所述第二属性集中包含的属性名称,确定所述第一属性集与所述第二属性集的属性交集,通过交集便于后续的获取属性名称以及属性值,同时便于将属性名称相同的属性筛选出来进行单独判断属性名称是否存在映射关系。其它的属性名称不同的属性的映射关系则还可以按照上述实施例的方法进行判断。该实施例中,获取第一属性集以及第二属性集时,也可以利用编程语言的反射机制进行获取。
为了便于对上述实现逻辑的理解,以下将举一应用实例对接口转转换验证方法进行描述。该方法应用在web应用接口开发过程中对接口的转换功能进行验证,应用场景具体如图2所示,其中待验证转换功能的接口通过获取第二对象,进而将获取到第二对象经过其转换功能转换成第一对象,其中第一对象以及第二对象的数量均可以为多个。该方法实施例的流程示意图如图3所示,该为方便理解,首先对验证的实现方式进行简要说明:
1)可以根据属性名称进行属性匹配的属性对,即第一对象的部分或者是全部第一属性和第二对象的部分或者是全部第二属性的属性名称相同,并且该第一属性和第二属性之间不存在运算关系,则该第一属性在配置文件中无需列出。可以通过编程语言的反射机制分别获取第一属性的属性值和第二属性的属性值,如果类型一致则直接比对,如果不一致则在类型转换后进行比对。
2)不能根据属性名称进行属性匹配的属性对,可以通过解析配置文件获取属性之间的其它映射关系,再通过编程语言的反射机制分别获取第一属性的属性值和第二属性的属性值进行比对。
配置文件中可以包括以下内容:第一属性的属性名称;第一属性的属性类型(整形、字符串、对象引用等等);所对应的第二属性所在第二对象,第二对象可能是一个或者多个;所对应的第二属性的属性名称和属性类型,对应的第二属性可能是一个或者多个;如果只对应了一个第二属性,但是第一、第二属性的属性值的类型不同,还可以设置两者之间的类型转换关系,如果不设置该类型转换关系,则可以使用通用的默认强制转换方式进行转换;如果只对应了一个第二属性,但是存在运算转换,该第一属性和该第二属性之间的运算关系;如果对应了多个第二属性,该第一属性和该多个第二属性之间的运算关系。
配置文件可以使用文本文件,yaml,xml,json等格式,确保能够有效表达各种映射关系即可。
以下将对该实施例提供的方法步骤进行说明:首先获取第二对象以及由该第二对象经接口转换后得到的第一对象,使用编程语言的反射机制获取到第一对象的第一属性集,第二对象的第二属性集,其中,第一属性集中包括有第一对象包括的所有第一属性的属性名称以及每一个属性的属性值,同理,第二属性集中包括有第二对象包括的所有第二属性的属性名称以及每一个属性的属性值。
然后按照属性名称对第一属性集和第二属性集取交集,此时在交集中存在有第一属性集和第二属性集共有的属性名称,然后读取配置文件,结合配置文件中的存储内容对第一对象的第一属性集中的第一属性按以下步骤逐一验证:
步骤S21:判断配置文件中是否列出了该第一属性,如果否,则执行步骤S22;如果是,则执行步骤S23。
步骤S22:查看交集中是否存在该第一属性,参见图3最右侧的分支,如果是,则获取相同属性名称的第二属性的属性值,并验证该属性值与第一属性的属性值是否一致(相等)。如果一致,则执行步骤S25;如果交集中不存在该第一属性或者是第二属性的属性值与第一属性的属性值不一致,则执行步骤S26。
步骤S23:解析配置文件中该第一属性与第二属性之间的映射关系,如果第一属性与第二属性之间是存在运算关系的一对一,或者一对多关系,则执行步骤S24;如果是简单的一对一对应关系,见图3最左侧的分支,则到第二属性集中取得对应的第二属性的属性值,如需类型转换则按照配置文件中的映射关系进行类型转换,然后验证属性值是否一致。如果一致则执行步骤S25;如果不一致则执行步骤S26。
步骤S24:到第二属性集中取得一个或者多个第二属性的属性值,根据配置文件中的映射关系计算该一个或者多个第二属性的属性值并与第一属性的属性值进行比较,如果相等,则执行步骤S25;如果不相等则执行步骤S26。
步骤S25:该第一属性验证通过,继续验证第一对象中的下一个第一属性。
步骤S26:该第一属性验证失败。
如果第一对象包含的全部第一属性验证通过,则表示接口的转换功能正确,如果有任一个第一属性验证失败,则说明接口的转换功能存在问题。
该实施例提供的方法整个过程围绕第一属性与第二属性之间的属性匹配关系,利用java等编程语言的反射机制进行动态处理,不编写针对某个属性进行验证的静态代码。相对于编写纯静态代码进行验证的方式,该实施例使用灵活的动态验证方式,代码量小,验证逻辑清晰,将开发人员从重复繁琐的编码过程中解放出来,尽可能避免编码过程中容易出现的错误和遗漏;由于反射机制的充分利用,被验证系统中可能变化的部分被尽可能地抽象出来,因此其变更很少会导致验证系统的变更,即使有,也只需要修改配置文件,无需频繁更改代码并重新编译,维护工作简单高效。
上述内容详细介绍了本申请实施方式提供的接口转换的验证方法的实施例,与此对应地,本申请还提供了一种接口转换的验证装置的实施方式。参见图4,该图示出了一种接口转换的验证装置的实施例,该装置包括:对象获取模块31、判断模块32和验证模块33,其中,
所述对象获取模块31,可以用于获取第一对象和所述第一对象的第一属性信息,以及获取第二对象和所述第二对象的第二属性信息,所述第一对象由所述第二对象经接口转换得到;
所述判断模块32,可以用于根据配置文件中存储的不同对象的属性信息之间的映射关系,判断所述第一属性信息与所述第二属性信息之间是否存在映射关系;
所述验证模块33,可以根据判断模块32的判断结果验证所述接口的转换功能是否正确。
采用该实施例提供的装置,对象获取模块获取到第一对象和第二对象后,判断模块即可根据配置文件中存储的不同对象的属性信息之间的映射关系判断第一属性信息与第二属性信息之间是否存在映射关系,最后验证模块根据判断模块的判断结果验证所述接口的转换功能是否正确。
通过该装置,判断模块可以通过读取配置文件的方式获取属性信息之间的映射关系,当第一对象和第二对象中新增属性信息或者是对原有的属性信息映射关系进行修改时,该改变内容体现在配置文件而非验证代码中,避免了验证代码出现错误,提高接口转换验证的效率;属性信息之间的映射关系清晰明了,尽可能避免了编码可能导致的错误和遗漏,进一步提高接口转换验证的效率。另外,通过该方法的实施,可以利用维护简单配置文件的方式代替现有技术中维护冗长的java验证代码,有效降低了维护成本;当需要变更或者新增属性对时,只需在配置文件中变更或者新增相应内容;当需要变更映射关系时,也只要修改配置文件,不必修改并重新编译代码。
为了方便获取属性名称、属性值以及进行属性名称的匹配,上述装置还可以包括属性集处理模块,其中,所述属性集处理模块,可以用于根据所述第一对象确定第一属性集,以及根据所述第二对象确定第二属性集;则所述判断模块,根据所述第一属性集中包含的第一属性的属性名称以及第二属性集中包含的第二属性的属性名称;和/或,第一属性集中包含的第一属性的属性值以及第二属性集中包含的第二属性的属性值,判断所述第一属性信息与所述第二属性信息之间是否存在映射关系。
另外,验证模块根据判断结果验证所述接口的转换功能是否正确,包括:如果判断结果为是,则验证模块验证所述接口的转换功能正确;或,如果判断结果为否,则验证模块验证所述接口的转换功能不正确。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

Claims (12)

1.一种接口转换的验证方法,其特征在于,所述方法包括:
获取第一对象和所述第一对象的第一属性信息,以及获取第二对象和所述第二对象的第二属性信息,所述第一对象由所述第二对象经接口转换得到;
根据配置文件中存储的不同对象的属性信息之间的映射关系,判断所述第一属性信息与所述第二属性信息之间是否存在映射关系;
根据判断结果验证所述接口的转换功能是否正确。
2.根据权利要求1所述的方法,其特征在于,在获取第一对象和第二对象之后,所述方法还包括:
根据所述第一对象确定第一属性集,以及根据所述第二对象确定第二属性集;
根据配置文件中存储的不同对象的属性信息之间的映射关系,判断所述第一属性信息与所述第二属性信息之间是否存在映射关系,包括:
根据所述第一属性集中包含的第一属性的属性名称以及第二属性集中包含的第二属性的属性名称;和/或,第一属性集中包含的第一属性的属性值以及第二属性集中包含的第二属性的属性值,判断所述第一属性信息与所述第二属性信息之间是否存在映射关系。
3.根据权利要求2所述的方法,其特征在于,根据所述第一属性集中包含的第一属性的属性名称以及第二属性集中包含的第二属性的属性名称,判断所述第一属性信息与所述第二属性信息之间是否存在映射关系,包括:
将配置文件中包含的属性名称分别与所述第一属性集中包含的第一属性的属性名称以及第二属性集中包含的第二属性的属性名称进行匹配;
根据匹配结果,判断所述第一属性信息与所述第二属性信息之间是否存在映射关系。
4.根据权利要3所述的方法,其特征在于,根据匹配结果,判断所述第一属性信息与所述第第二属性信息之间是否存在映射关系,包括:
若配置文件中包含的属性名称分别与所述第一属性集中包含的第一属性的属性名称以及第二属性集中包含的第二属性的属性名称匹配成功,则确定所述第一属性信息与所述第二属性信息之间存在映射关系。
5.根据权利要2所述的方法,其特征在于,在确定第一属性集以及确定第二属性集之后,所述方法还包括:
根据所述第一属性集中包含的属性名称和所述第二属性集中包含的属性名称,确定所述第一属性集与所述第二属性集的属性交集;
根据所述第一属性集中包含的第一属性的属性名称以及第二属性集中包含的第二属性的属性名称,判断所述第一属性信息与所述第二属性信息之间是否存在映射关系,包括:
将配置文件中包含的属性名称与所述属性交集中包括的属性名称进行匹配;
根据匹配结果,判断所述第一属性信息与所述第二属性信息之间是否存在映射关系。
6.根据权利要2所述的方法,其特征在于,根据第一属性集中包含的第一属性的属性值以及第二属性集中包含的第二属性的属性值,判断所述第一属性信息与所述第二属性信息之间是否存在映射关系,包括:
判断所述第一属性集中包含的第一属性的属性值与所述第二属性集中包含的第二属性的属性值是否相等;
若判断结果为是,则确定所述第一属性信息与所述第二属性信息之间存在映射关系。
7.根据权利要2所述的方法,其特征在于,根据第一属性集中包含的第一属性的属性值以及第二属性集中包含的第二属性的属性值,判断所述第一属性信息与所述第二属性信息之间是否存在映射关系,包括:
判断所述第一属性集中包含的第一属性的属性值与所述第二属性集中包含的第二属性的属性值是否满足设定运算规则和/或类型转换规则;
若判断结果为是,则确定所述第一属性信息与所述第二属性信息之间存在映射关系。
8.根据权利要2至7任一项所述的方法,其特征在于,
所述第一属性集利用编程语言的反射机制获取,和/或,
所述第二属性集利用编程语言的反射机制获取。
9.根据权利要1所述的方法,其特征在于,根据判断结果验证所述接口的转换功能是否正确,包括:
若判断结果为是,则验证所述接口的转换功能正确;
若判断结果为否,则验证所述接口的转换功能不正确。
10.一种接口转换的验证装置,其特征在于,所述装置包括:对象获取模块、判断模块和验证模块,其中,
所述对象获取模块,获取第一对象和所述第一对象的第一属性信息,以及获取第二对象和所述第二对象的第二属性信息,所述第一对象由所述第二对象经接口转换得到;
所述判断模块,根据配置文件中存储的不同对象的属性信息之间的映射关系,判断所述第一属性信息与所述第二属性信息之间是否存在映射关系;
所述验证模块,根据判断模块的判断结果验证所述接口的转换功能是否正确。
11.根据权利要求10所述的装置,其特征在于,所述装置还包括属性集处理模块,其中,
所述属性集处理模块,根据所述第一对象确定第一属性集,以及根据所述第二对象确定第二属性集;
所述判断模块,根据所述第一属性集中包含的第一属性的属性名称以及第二属性集中包含的第二属性的属性名称;和/或,第一属性集中包含的第一属性的属性值以及第二属性集中包含的第二属性的属性值,判断所述第一属性信息与所述第二属性信息之间是否存在映射关系。
12.根据权利要10所述的装置,其特征在于,所述验证模块根据判断模块的判断结果验证所述接口的转换功能是否正确,包括:
若判断结果为是,则验证模块验证所述接口的转换功能正确;
若判断结果为否,则验证模块验证所述接口的转换功能不正确。
CN201610488017.5A 2016-06-28 2016-06-28 一种接口转换的验证方法和装置 Active CN106874181B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610488017.5A CN106874181B (zh) 2016-06-28 2016-06-28 一种接口转换的验证方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610488017.5A CN106874181B (zh) 2016-06-28 2016-06-28 一种接口转换的验证方法和装置

Publications (2)

Publication Number Publication Date
CN106874181A true CN106874181A (zh) 2017-06-20
CN106874181B CN106874181B (zh) 2020-09-29

Family

ID=59239407

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610488017.5A Active CN106874181B (zh) 2016-06-28 2016-06-28 一种接口转换的验证方法和装置

Country Status (1)

Country Link
CN (1) CN106874181B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019056740A1 (zh) * 2017-09-25 2019-03-28 北京因特睿软件有限公司 数据接口处理方法、装置、服务器及介质
CN111274766A (zh) * 2018-11-16 2020-06-12 福建天泉教育科技有限公司 一种文件转码结果的校验方法及终端
CN111581267A (zh) * 2020-04-14 2020-08-25 北京明略软件系统有限公司 一种对象数据的存储方法和装置
CN112835565A (zh) * 2021-01-29 2021-05-25 山东浪潮通软信息科技有限公司 一种生成组件配置器的方法、设备和存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5355479A (en) * 1991-01-21 1994-10-11 Fujitsu Limited Interface conformance verification system
CN101639849A (zh) * 2009-06-01 2010-02-03 北京四维图新科技股份有限公司 处理数据的方法和装置
CN102650996A (zh) * 2011-02-28 2012-08-29 国际商业机器公司 确定数据库表之间的数据映射关系的方法和装置
CN105260168A (zh) * 2014-07-15 2016-01-20 阿里巴巴集团控股有限公司 日志输出方法和装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5355479A (en) * 1991-01-21 1994-10-11 Fujitsu Limited Interface conformance verification system
CN101639849A (zh) * 2009-06-01 2010-02-03 北京四维图新科技股份有限公司 处理数据的方法和装置
CN102650996A (zh) * 2011-02-28 2012-08-29 国际商业机器公司 确定数据库表之间的数据映射关系的方法和装置
CN105260168A (zh) * 2014-07-15 2016-01-20 阿里巴巴集团控股有限公司 日志输出方法和装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
刘智武: "AFDX网络配置驱动的PCI总线远程数据采集器设计", 《计算机测量与控制》 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019056740A1 (zh) * 2017-09-25 2019-03-28 北京因特睿软件有限公司 数据接口处理方法、装置、服务器及介质
US11269611B2 (en) 2017-09-25 2022-03-08 Beijing Internetware Limited Company Data interface processing method, device, server and medium
CN111274766A (zh) * 2018-11-16 2020-06-12 福建天泉教育科技有限公司 一种文件转码结果的校验方法及终端
CN111274766B (zh) * 2018-11-16 2023-11-03 福建天泉教育科技有限公司 一种文件转码结果的校验方法及终端
CN111581267A (zh) * 2020-04-14 2020-08-25 北京明略软件系统有限公司 一种对象数据的存储方法和装置
CN112835565A (zh) * 2021-01-29 2021-05-25 山东浪潮通软信息科技有限公司 一种生成组件配置器的方法、设备和存储介质

Also Published As

Publication number Publication date
CN106874181B (zh) 2020-09-29

Similar Documents

Publication Publication Date Title
US10177996B2 (en) System and method for validating documentation of representational state transfer (REST) services
WO2019200757A1 (zh) 数据导入方法、装置、计算机设备和存储介质
US8832455B1 (en) Verified boot path retry
US7657832B1 (en) Correcting validation errors in structured documents
US10019347B2 (en) Systems and methods for selection of test cases for payment terminals
CN106899411A (zh) 一种基于验证码的校验方法及装置
CN106874181A (zh) 一种接口转换的验证方法和装置
KR20200021993A (ko) 블록체인 컴파일러
BRPI1002197B1 (pt) Sistema de relatório, análise e comentário de documentos
US11941377B2 (en) Production-ready attributes creation and management for software development
CN106649788A (zh) 一种数据库数据传输方法与装置
CN104217494B (zh) 一种卡号校验方法和装置
CN109783558A (zh) Excel数据的导入方法、装置、计算机设备和存储介质
JP6976064B2 (ja) モデルチェックのためのデータ構造抽象化
CN107133120A (zh) 一种文件数据的校验方法、装置
CN106843878A (zh) 一种模型生成方法和系统
CN103440198A (zh) 表单校验方法
CN109165209A (zh) 数据库中对象类型的数据校验方法、装置、设备及介质
CN104965781A (zh) 一种生成测试用例的方法及装置
Chini et al. Fine-grained complexity of safety verification
CN106874173A (zh) 页面模板的测试方法和装置
US20080313472A1 (en) Method and apparatus for changing and adding activation keys for functions of digital content without having to change and recompile the digital content
US20080077623A1 (en) Representing file data using virtual hierarchy
CN107133163A (zh) 一种验证描述类api的方法与设备
CN106878248A (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
TR01 Transfer of patent right

Effective date of registration: 20200922

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman, British Islands

Patentee after: Innovative advanced technology Co.,Ltd.

Address before: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman, British Islands

Patentee before: Advanced innovation technology Co.,Ltd.

Effective date of registration: 20200922

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman, British Islands

Patentee after: Advanced innovation technology Co.,Ltd.

Address before: A four-storey 847 mailbox in Grand Cayman Capital Building, British Cayman Islands

Patentee before: Alibaba Group Holding Ltd.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20240228

Address after: Guohao Times City # 20-01, 128 Meizhi Road, Singapore

Patentee after: Advanced Nova Technology (Singapore) Holdings Ltd.

Country or region after: Singapore

Address before: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman, British Islands

Patentee before: Innovative advanced technology Co.,Ltd.

Country or region before: Cayman Islands

TR01 Transfer of patent right