CN112181535A - 一种接口调用方法、装置、服务器及存储介质 - Google Patents

一种接口调用方法、装置、服务器及存储介质 Download PDF

Info

Publication number
CN112181535A
CN112181535A CN202010994608.6A CN202010994608A CN112181535A CN 112181535 A CN112181535 A CN 112181535A CN 202010994608 A CN202010994608 A CN 202010994608A CN 112181535 A CN112181535 A CN 112181535A
Authority
CN
China
Prior art keywords
interface
class
annotation
called
calling
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.)
Pending
Application number
CN202010994608.6A
Other languages
English (en)
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.)
China Construction Bank Corp
Original Assignee
China Construction Bank Corp
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 China Construction Bank Corp filed Critical China Construction Bank Corp
Priority to CN202010994608.6A priority Critical patent/CN112181535A/zh
Publication of CN112181535A publication Critical patent/CN112181535A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4488Object-oriented
    • G06F9/449Object-oriented method invocation or resolution

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本发明实施例公开了一种接口调用方法、装置、服务器及存储介质。该方法应用于服务器,可包括:在监测到接口调用的触发事件时,获取触发事件对应的接口调用参数;在映射关系中确定与接口调用参数对应的待调用场景中的待调用接口,其中,映射关系通过注解动态映射的方式预先构建完成;调用待调用接口以实现待调用接口对应的功能。本发明实施例的技术方案,通过提供的一种更简单、更灵活、更统一、标准化的接口调用方式,在各种场景下的各接口的调用过程可以统一在唯一入口中来实现,由此解决了接口调用实现难度较大的问题,降低了开发人员的工作强度,且提高了后续的接口调用的效率。

Description

一种接口调用方法、装置、服务器及存储介质
技术领域
本发明实施例涉及计算机技术领域,尤其涉及一种接口调用方法、装置、服务器及存储介质。
背景技术
在软件应用开发过程中,后端接口调用是前后端交互、***间交互的基础,是软件应用中的基本功能。
在金融服务领域,针对各种金融交易存在耗时监控、同异步、过滤、添加流水日志等等需求,这致使在不同场景下为完成各自的需求而调用相应接口的实现过程非常繁琐。特别地,由于实际的场景较多,同一需求在各种场景下的接口调用的实现方式并不统一,这亦加大了接口调用的实现难度。
发明内容
本发明实施例提供了一种接口调用方法、装置、服务器及存储介质,解决了接口调用的实现难度较大的问题。
第一方面,本发明实施例提供了一种接口调用方法,应用于服务器,包括:
在监测到接口调用的触发事件时,获取触发事件对应的接口调用参数;
在映射关系中确定与接口调用参数对应的待调用场景中的待调用接口,其中,映射关系通过注解动态映射的方式预先构建完成;
调用待调用接口以实现待调用接口对应的功能。
可选的,映射关系可以通过如下步骤预先构建完成:
获取自定义运行时的类注解和方法注解、及与类注解和方法注解对应的实体类,并基于预先设置的注解扫描类将类注解和方法注解写入实体类中,基于写入后的实体类构建出映射关系。
可选的,实体类中设置有交易码、类名、类对象和方法。
可选的,基于预先设置的注解扫描类将类注解和方法注解写入实体类中,可以包括:
以获取到的类对象和类名为入参参数,调用构建完成的注解写入函数,以将类注解和方法注解写入实体类中,其中,注解写入函数设置于预先设置的注解处理类,注解处理类中设置有映射变量,注解写入函数通过映射变量将类注解和方法注解写入实体类中,映射变量是静态Map类型成员变量。
可选的,注解写入函数可以通过如下步骤实现注解写入功能:
确定与类对象对应的类注解,在类注解非空时,获取与类对象关联的各方法构成的方法数组,并判断方法数组是否为空;
若否,则依次获取方法数组中的各方法对象、以及各方法对象的方法注解,并在方法注解不为空时,获取方法注解的交易码;
在交易码非空时,根据交易码从映射变量中获取与类名和类对象相应的实体对象,基于实体对象将类注解以及方法注解写入实体类中,其中,实体对象是实体类中的对象。
可选的,上述接口调用方法,还可以包括:通过方法注解注解待调用接口,且通过类注解注解待调用场景。
可选的,在映射关系中确定与接口调用参数对应的待调用场景中的待调用接口,可以包括:
以接口调用参数为入参参数,调用已构建完成的接口确定函数,以在映射关系中确定与接口调用参数对应的待调用场景中的待调用接口,其中,接口确定函数设置于接口服务类中,接口服务类包括FacadeService类。
可选的,接口确定函数可以通过如下步骤实现接口确定功能:
获取与接口调用参数对应的实体对象,并在实体对象非空时,从实体对象中获取类对象和方法对象;
根据类对象在映射关系中确定待调用场景,并根据方法对象在待调用场景中确定待调用接口。
可选的,获取触发事件对应的接口调用参数,可以包括:
基于入口类获取触发事件对应的接口调用参数,入口类中通过注解方式注入接口服务类的接口服务对象。
在此基础上,可选的,在映射关系中确定与接口调用参数对应的待调用场景中的待调用接口,可以包括:通过入口类中的接口服务对象,在映射关系中确定与接口调用参数对应的待调用场景中的待调用接口。
可选的,调用待调用接口以实现待调用接口对应的功能,可以包括:
调用待调用接口以对预设反射算法执行时间记录来监控耗时;或是,
调用待调用接口以根据接口调用参数中的可变长参数中的同异步参数控制预设反射算法中同步异步的执行;或是,
调用待调用接口以对可变长参数进行判断来过滤数据;或是,
调用待调用接口以对接口调用参数中的交易码进行分类来实现相应需求下的操作流水记录。
可选的,映射关系中存储有接口调用参数、待调用场景和待调用接口间的对应关系。
第二方面,本发明实施例还提供了一种接口调用装置,配置于服务器,该装置可以包括:
参数获取模块,用于在监测到接口调用的触发事件时,获取触发事件对应的接口调用参数;
接口确定模块,用于在映射关系中确定与接口调用参数对应的待调用场景中的待调用接口,映射关系通过注解动态映射的方式预先构建完成;
接口调用模块,用于调用待调用接口以实现待调用接口对应的功能。
第三方面,本发明实施例还提供了一种服务器,该服务器可以包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现本发明任意实施例所提供的接口调用方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现本发明任意实施例所提供的接口调用方法。
本发明实施例的技术方案,服务器中的唯一入口在接收到经由前端传递来的接口调用参数时,根据该接口调用参数可以在映射关系中得到与其对应的待调用场景下的待调用接口;由此,通过对该待调用接口进行调用实现相应的功能。上述技术方案,通过提供的一种更简单、更灵活、更统一、标准化的接口调用方式,在各种场景下的各接口的调用过程可以统一在唯一入口中来实现,由此解决了接口调用的实现难度较大的问题,降低了开发人员的工作强度,且提高了后续的接口调用的效率。
附图说明
图1是本发明实施例一中的一种接口调用方法的流程图;
图2是本发明实施例二中的一种接口调用方法的流程图;
图3是本发明实施例三中的一种接口调用方法的流程图;
图4是本发明实施例四中的一种接口调用装置的结构框图;
图5是本发明实施例五中的一种服务器的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
实施例一
图1是本发明实施例一中提供的一种接口调用方法的流程图。本实施例可适用于通过唯一入口对各种场景下的各种需求对应的接口进行调用的情况。该方法可以由本发明实施例提供的接口调用装置来执行,该装置可以由软件和/或硬件的方式实现,该装置可以集成在服务器上。
参见图1,本发明实施例的方法具体包括如下步骤:
S110、在监测到接口调用的触发事件时,获取触发事件对应的接口调用参数。
其中,触发事件事件可以是由前端(即,客户端)触发的用于对后端(即,服务器)中的接口进行调用的事件,该接口可以是某场景下的某种需求对应的待调用接口,该场景可以是与金融交易有关的场景,该需求可以是耗时监控、同异步、过滤、添加流水日志等等,在此未做具体限定。
在监测到接口调用的触发事件时,获取该触发事件对应的由前端传递过来的接口调用参数,该接口调用参数可以包括交易码、可变长参数等等,该获取过程可以是由本发明各实施例设置的Java后端服务的唯一入口来执行,该唯一入口可以将不同场景下的各种接口统一在一起,这样设置的好处在于,通过所提供一种更简单、更灵活、统一、标准化的接口调用方式,在各种场景下的各需求可以统一在唯一入口中来实现,由此解决了因同一需求在不同场景中应用而需要在各场景中重复编写代码的问题,只需在唯一入口中编写各种需求相关的代码,由此降低了开发人员的工作强度,且提高了后续的接口调用的效率。
S120、在映射关系中确定接口调用参数对应的待调用场景中的待调用接口,其中,映射关系通过注解动态映射的方式预先构建完成。
其中,待调用场景是各场景中与接口调用参数对应的待调用的场景,且待调用接口是待调用场景下的各接口中与待调用参数对应的待调用的接口,映射关系中存储有接口调用参数、场景和接口间的对应关系,由此,在映射关系中可以得到与接口调用参数对应的待调用场景和该待调用场景下的待调用接口,换言之,根据接口调用参数可以确定调用唯一入口中的哪个接口来实现相应的功能,即通过唯一入口即可调用相应的接口以实现相应的功能,无需在各场景对应的入口中寻找相应的接口,由此提高了接口调用的效率。
需要说明的是,上述映射关系可以通过注解动态映射的方式预先构建完成,如对需要统一到唯一入口中的场景和接口进行注解,根据注解结果将场景和接口进行映射,由于每个接口存在各自的交易码,该交易码是接口调用参数中的一种,因此,通过注解动态映射的方式构建出的映射关系可包括场景、接口和接口调用参数间的映射关系。
在此基础上,可选的,获取触发事件对应的接口调用参数,具体可以包括:基于入口类获取触发事件对应的接口调用参数,该入口类中通过注解方式注入接口服务类的接口服务对象,其中,该入口类可以表示为WebController,且该接口服务类可以表示为FacadeService类,这一技术方案实现了唯一入口的调用过程;由此,在映射关系中确定与接口调用参数对应的待调用场景中的待调用接口,具体可以包括:通过入口类中的接口服务对象,在映射关系中确定与接口调用参数对应的待调用场景中的待调用接口。
S130、调用待调用接口以实现待调用接口对应的功能。
其中,每个待调用接口相应于一个函数、方法等等,因此,通过对待调用接口进行调用可以实现该待调用接口对应的功能。示例性的,调用待调用接口以对预设反射算法执行时间记录来监控耗时;或是,调用待调用接口以便根据接口调用参数中的可变长参数中的同异步参数控制预设反射算法中同步异步的执行;或是,调用待调用接口以便对可变长参数进行判断来过滤数据;或是,调用待调用接口以便对接口调用参数中的交易码进行分类来实现相应需求下的操作流水记录;等等,在此未做具体限定。
本发明实施例的技术方案,服务器中的唯一入口在接收到经由前端传递来的接口调用参数时,根据该接口调用参数可以在映射关系中得到与其对应的待调用场景下的待调用接口;由此,通过对该待调用接口进行调用实现相应的功能。上述技术方案,通过提供的一种更简单、更灵活、更统一、标准化的接口调用方式,在各种场景下的各接口的调用过程可以统一在唯一入口中来实现,由此解决了接口调用的实现难度较大的问题,降低了开发人员的工作强度,且提高了后续的接口调用的效率。
实施例二
图2是本发明实施例二中提供的一种接口调用方法的流程图。本实施例以上述各技术方案为基础进行优化。在本实施例中,可选的,映射关系可以通过如下步骤预先构建完成:获取自定义运行时的类注解和方法注解、及与类注解和方法注解对应的实体类,该实体类中设置有交易码、类名、类对象和方法;基于预先设置的注解扫描类将类注解和方法注解写入实体类中,并基于写入后的实体类构建出映射关系。其中,与上述各实施例相同或相应的术语的解释在此不再赘述。参见图2,本实施例的方法具体可以包括如下步骤:
S210、获取自定义运行时的类注解和方法注解、及与类注解和方法注解对应的实体类,其中,实体类中设置有交易码、类名、类对象和方法。
其中,类注解和方法注解可以理解为标签,实体类是与各标签对应的类,该实体类中可以设置有各标签对应的交易码、类名、类对象和方法,该实体类可以通过DealAction来表示。在实际应用中,可选的,还可以通过方法注解来注解各待调用接口,且通过类注解来注解各待调用场景,即对需要统一到唯一入口中的场景和接口打标签。需要说明的是,类和场景具有对应关系、且类中的方法和场景中的接口具有对应关系。
S220、基于预先设置的注解扫描类将类注解以及方法注解写入实体类中,并基于写入后的实体类构建出映射关系。
其中,基于注解扫描类对各种场景下的各种接口进行扫描,可得到设置有类注解的场景和设置有方法注解的接口,由此,可将扫描得到的类注解和方法注解写入实体类中,由此构建出的映射关系。
在此基础上,可选的,基于预先设置的注解扫描类将类注解以及方法注解写入实体类中,具体可包括:以获取到的类对象和类名为入参参数,调用构建完成的注解写入函数,以将类注解和方法注解写入实体类中;其中,注解写入函数设置于预先设置的注解处理类,注解处理类中设置有映射变量,注解写入函数通过映射变量将类注解和方法注解写入实体类中,该映射变量是静态Map类型成员变量。在此基础上,可选的,注解写入函数可通过如下步骤实现注解写入功能:确定与类对象对应的类注解,在类注解非空时,获取与类对象关联的各方法构成的方法数组,并判断方法数组是否为空;若否,则依次获取方法数组中的各方法对象、以及各方法对象的方法注解,并在方法注解不为空时,获取方法注解的交易码;在交易码非空时,根据交易码从映射变量中可获取与类名和类对象相应的实体对象,基于实体对象将类注解以及方法注解写入实体类中,其中,实体对象是实体类中的对象。
S230、在监测到接口调用的触发事件时,获取触发事件对应的接口调用参数。
S240、在映射关系中确定接口调用参数对应的待调用场景中的待调用接口,其中,映射关系通过注解动态映射的方式预先构建完成。
S250、调用待调用接口以实现待调用接口对应的功能。
本发明实施例的技术方案,通过获取自定义运行时的类注解和方法注解、及与类注解和方法注解对应的实体类,由此基于注解扫描类可以将类注解以及方法注解写入实体类中,并基于写入后的实体类构建出映射关系,由此实现了映射关系的构建效果。
实施例三
图3是本发明实施例三中提供的一种接口调用方法的流程图。本实施例以上述各技术方案为基础进行优化。在本实施例中,可选的,在映射关系中确定与接口调用参数对应的待调用场景中的待调用接口,具体可包括:以接口调用参数为入参参数,调用已构建完成的接口确定函数,以便在映射关系中确定与接口调用参数对应的待调用场景中的待调用接口,其中,接口确定函数设置于接口服务类中,接口服务类包括FacadeService类。其中,与上述各实施例相同或相应的术语的解释在此不再赘述。
参见图3,本实施例的方法具体可以包括如下步骤:
S310、在监测到接口调用的触发事件时,获取触发事件对应的接口调用参数。
S320、以接口调用参数为入参参数,调用已构建完成的接口确定函数,以在映射关系中确定接口调用参数对应的待调用场景中的待调用接口,映射关系通过注解动态映射的方式预先构建完成,接口确定函数设置于接口服务类中,接口服务类包括FacadeService类。
其中,接口服务类可以设置于入口类中,基于该入口类可以获取接口调用参数,该接口确定函数设置于接口服务类中,因此,基于入口类在获取到接口调用参数之后,入口类中的接口确定函数根据接口调用参数可以确定相应的待调用场景中的待调用接口。在此基础上,可选的,接口确定函数可以通过如下步骤实现接口确定功能:获取与接口调用参数对应的实体对象,该实体对象是实体类中的对象;在实体对象非空时,从实体对象中获取类对象以及方法对象;由于类和场景具有对应关系且方法和接口具有对应关系,因此,根据类对象在映射关系中可以确定待调用场景,并根据方法对象在待调用场景中可以确定待调用接口,由此实现了待调用接口的精准确定的效果。
S330、调用待调用接口以实现待调用接口对应的功能。
本发明实施例的技术方案,通过以接口调用参数为入参参数,调用已构建完成的接口确定函数,以在映射关系中确定接口调用参数对应的待调用场景中的待调用接口,由此实现了待调用接口的精准确定的效果。
为了更好地理解上述步骤的具体实现过程,下面结合具体示例对本实施例的接口调用方法进行示例性的说明。示例性的,
1)添加运行时刻(runtime)的类注解@Deal和方法注解@Action,此时,类注解和方法注解可以理解为标签,将各标签给到相应的类和方法中,其中,类和场景具有对应性,类中的方法和场景中的接口具有对应性,以便在本发明各实施例设置的唯一入口处对打有标签的类和方法进行调用。
2)添加类注解和方法注解的实体类DealAction,在其中可添加如下字段:code(方法注解中定义的交易码)、beanName(类名)、bean(类对象)和method(方法),并对应的get(取值)方法和set(设置值)方法。也就是说,DealAction中存储有类/方法的code、beanName、bean和method,以便将打了标签的各种类/方法存储在DealAction中,此时,DealAction可以理解为映射关系、键值对、列表、集合等等,该映射关系可以存储于内存中,后续唯一入口通过DealAction确定哪些类/方法是已打标的可以被调用的类/方法。
3)添加注解处理类DealActionHolder,在DealActionHolder中定义了方法postProcess,该postProcess基于DealActionHolder将打了标签的类/方法存储在DealAction中,这是定义过程,而步骤4)是在初始化扫描过程中通过调用postProcess将打了标签的类/方法存储在DealAction中,这是执行过程。具体的,
Ⅰ、在DealActionHolder添加静态Map类型成员变量findDealAtionCache并对进行初始化,其中,findDealAtionCache相当于键值对;
Ⅱ、添加初始化赋值findDealAtionCache的静态方法postProcess(Object bean,String beanName),其入参参数是bean和beanName,其中,Deal注解是类注解且Action注解是方法注解,其是先将Deal注解的相关内容放到dealBean中,再将该内容中的Action注解的相关内容放到dealBean中(即,通过循环的方式读取Action注解中的全部方法)。具体实现过程参见下述5个步骤:
①通过入参参数中的bean获取类的Deal注解,若Deal注解为空,则直接返回;否则,继续向下执行;
②通过bean获取全部方法的方法数组methods,如果方法数组不为空,则循环获取方法数组中的方法对象method;
③在循环过程中获取method的Action注解,如果Action注解不为空,则获取Action注解的交易码code,若code为空则抛异常;否则,继续向下执行;
④根据code,从findDealAtionCache中获取DealAction对象,如果已存在则抛出异常提示,否则继续向下执行;
⑤新建DealAction对象,并设置对应的bean、beanName、method和code,将其加入到方法数组中;
Ⅲ、添加根据code查询注解对象的静态方法findDealAction(String code),该方法根据传入参参数code,从Map findDealAtionCache中获取相应的DealAction对象并返回。
4)添加注解扫描类DealActionScannerConfigurer并实现spring后置处理器接口BeanPostProcessor,具体的:
Ⅰ、重写postProcessBeforeInitialization和postProcessAfterInitialization,需要说说明的是,postProcessBeforeInitialization的重写过程在实例化、依赖注入完毕,且初始化前执行,postProcessBeforeInitialization的重写过程在实例化、依赖注入、且初始化完毕时执行;
Ⅱ、postProcessBeforeInitialization方法中直接返回传入的bean;
Ⅲ、postProcessAfterInitialization方法中调用DealActionHolder中postProcess扫描添加Deal和Action的对象写入findDealAtionCache。
5)添加FacadeService类(接口服务类)执行注解的方法excute,本步骤是定义了一个唯一入口以将各种接口都统一到该唯一入口,以便前端通过该唯一入口进行接口调用,无需通过不同的接口进行接口调用。具体的,
Ⅰ、添加执行注解的方法excute(在excute中可添加耗时监控、同异步、过滤、添加流水日志等功能),传入交易码code和可变长参数args,并抛出方法异常Exception——excute包括参数和由前台传递到后台的参数
Ⅱ、通过DealActionHolder中的findDealAction(code)获取DealAction对象dealAction,若dealAction不为空,则说明当前交易码已定义,继续向下执行;
Ⅲ、从dealAction获取类对象(bean)和方法对象(method);
Ⅳ、反射执行method并返回该方法返回的内容,即,excute根据入参参数可以找到相应的bean、以及该bean中的method,并执行该method。
6)通过@Deal注解Service对象且通过@Action注解Services对象的方法,需要说明的是,前几步骤相当于定义标签的过程,本步骤相当于打标签的过程。
7)添加入口类WebController以实现唯一入口的调用过程,而5)是在唯一入口被调用时,根据相应的入参参数调用相应的方法。具体的,
Ⅰ、注解@Autowired注入FacadeService对象fs;
Ⅱ、添加请求test.do的映射方法test,入参参数是paramJson;
Ⅲ、通过Json转换获取交易码tranId和参数对象data;
Ⅳ、定义返回Man resultMap及返回交易状态bkStatus(如,00则代表交易正常)和返回描述bkDesc;
Ⅴ、通过三目运算判断data是否为空,若是则执行FacadeService的excute方法,可变参数不传;否则,可变参数传data,执行excute获取返回对象resultObj,并写入Controller返回对象resultMap中的respObj;
Ⅵ、捕获excute执行过程中的异常,将交易状态bkStatus更改为01,并将获取到的异常信息放入bkDesc;
Ⅶ、返回对象resultMap中写入交易状态bkStatus和返回描述bkDesc。
上述示例,通过统一Java后台服务的唯一入口,可在FacadeService类中的excute方法添加一系列操作,例如:
1、通过对反射方法执行时间记录,实现耗时监控;
2、通过传入的args中的同异步参数,控制反射方法同步异步的执行;
3、通过对传入args的数据判断,实现交易过滤;
4、通过对code编码分类(如增删改查),实现不同需求的操作流水记录。
实施例四
图4为本发明实施例四提供的接口调用装置的结构框图,该装置用于执行上述任意实施例所提供的接口调用方法。该装置与上述各个实施例的接口调用方法属于同一个发明构思,在接口调用装置的实施例中未详尽描述的细节内容,可以参考上述接口调用方法的实施例。参见图4,该装置配置于服务器,具体可以包括:参数获取模块410、接口确定模块420和接口调用模块430。
其中,参数获取模块410,用于在监测到接口调用的触发事件时,获取与触发事件对应的接口调用参数;
接口确定模块420,用于在映射关系中确定与接口调用参数对应的待调用场景中的待调用接口,其中,映射关系通过注解动态映射的方式预先构建完成;
接口调用模块430,用于调用待调用接口以实现待调用接口对应的功能。
可选的,在此基础上,上述接口调用装置,还可以包括:
实体类获取模块,用于获取自定义运行时的类注解和方法注解、及与类注解和方法注解对应的实体类;
映射关系构建模块,用于基于预先设置的注解扫描类将类注解和方法注解写入实体类中,并基于写入后的实体类构建出映射关系。
可选的,实体类中设置有交易码、类名、类对象和方法。
可选的,映射关系构建模块,具体可以包括:
注解写入单元,用于以获取到的类对象和类名为入参参数,调用构建完成的注解写入函数,以将类注解和方法注解写入实体类中;
其中,注解写入函数设置于预先设置的注解处理类,注解处理类中设置有映射变量,注解写入函数通过映射变量将类注解和方法注解写入实体类中,映射变量是静态Map类型成员变量。
可选的,注解写入函数通过如下子单元实现注解写入功能:
方法数组判断子单元,用于确定与类对象对应的类注解,在类注解非空时,获取与类对象关联的各方法构成的方法数组,并判断方法数组是否为空;
交易码获取子单元,用于若否,则依次获取方法数组中的各方法对象、以及各方法对象的方法注解,并在方法注解不为空时,获取方法注解的交易码;
注解写入子单元,用于在交易码非空时,根据交易码从映射变量中获取与类名和类对象相应的实体对象,基于实体对象将类注解以及方法注解写入实体类中,其中,实体对象是实体类中的对象。
可选的,在上述装置的基础上,该装置还可以包括:注解模块,用于通过方法注解注解待调用接口,且通过类注解注解待调用场景。
可选的,接口确定模块420,具体可以包括:
第一接口确定单元,用于以接口调用参数为入参参数,调用已构建完成的接口确定函数,以在映射关系中确定与接口调用参数对应的待调用场景中的待调用接口,其中,接口确定函数设置于接口服务类中,接口服务类包括FacadeService类。
可选的,接口确定函数通过如下子单元实现接口确定功能:
对象获取子单元,用于获取与接口调用参数对应的实体对象,在实体对象非空时,从实体对象中获取类对象和方法对象;
接口确定子单元,用于根据类对象在映射关系中确定待调用场景,并根据方法对象在待调用场景中确定待调用接口。
可选的,参数获取模块410,具体可以包括:
参数获取单元,用于基于入口类获取触发事件对应的接口调用参数,其中,入口类中通过注解方式注入接口服务类的接口服务对象;
在此基础上,可选的,接口确定模块420,具体可以包括:
第二接口确定单元,用于通过入口类中的接口服务对象,在映射关系中确定与接口调用参数对应的待调用场景中的待调用接口。
可选的,接口调用模块430,具体可以用于:
调用待调用接口以对预设反射算法执行时间记录来监控耗时;或是,
调用待调用接口以根据接口调用参数中的可变长参数中的同异步参数控制预设反射算法中同步异步的执行;或是,
调用待调用接口以对可变长参数进行判断来过滤数据;或是,
调用待调用接口以对接口调用参数中的交易码进行分类来实现相应需求下的操作流水记录。
可选的,映射关系中存储有接口调用参数、待调用场景和待调用接口间的对应关系。
本发明实施例四提供的接口调用装置,通过参数获取模块和接口确定模块相互配合,服务器中的唯一入口在接收到经由前端传递来的接口调用参数时,根据该接口调用参数可以在映射关系中得到与其对应的待调用场景下的待调用接口;由此,接口调用模块可通过对该待调用接口进行调用实现相应的功能。上述装置,通过提供的一种更简单、更灵活、更统一、标准化的接口调用方式,在各种场景下的各接口的调用过程可以统一在唯一入口中来实现,由此解决了接口调用的实现难度较大的问题,降低了开发人员的工作强度,且提高了后续的接口调用的效率。
本发明实施例所提供的接口调用装置可执行本发明任意实施例所提供的接口调用方法,具备执行方法相应的功能模块和有益效果。
值得注意的是,上述接口调用装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
实施例五
图5为本发明实施例五提供的一种服务器的结构示意图,如图5所示,该服务器包括存储器510、处理器520、输入装置530和输出装置540。服务器中的处理器520的数量可以是一个或多个,图5中以一个处理器520为例;服务器中的存储器510、处理器520、输入装置530和输出装置540可以通过总线或其它方式连接,图5中以通过总线550连接为例。
存储器510作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的接口调用方法对应的程序指令/模块(例如,接口调用装置中的参数获取模块410、接口确定模块420和接口调用模块430)。处理器520通过运行存储在存储器510中的软件程序、指令以及模块,从而执行服务器的各种功能应用及数据处理,即实现上述的接口调用方法。
存储器510可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需的应用程序;存储数据区可存储根据服务器的使用所创建的数据等。此外,存储器510可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器510可进一步包括相对于处理器520远程设置的存储器,这些远程存储器可以通过网络连接至设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置530可用于接收输入的数字或字符信息,以及产生与装置的用户设置以及功能控制有关的键信号输入。输出装置540可包括显示屏等显示设备。
实施例六
本发明实施例六提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行一种接口调用方法,该方法应用于服务器,可以包括:
在监测到接口调用的触发事件时,获取触发事件对应的接口调用参数;
在映射关系中确定与接口调用参数对应的待调用场景中的待调用接口,其中,映射关系通过注解动态映射的方式预先构建完成;
调用待调用接口以实现待调用接口对应的功能。
当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的接口调用方法中的相关操作。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。依据这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

Claims (15)

1.一种接口调用方法,其特征在于,应用于服务器,所述方法包括:
在监测到接口调用的触发事件时,获取所述触发事件对应的接口调用参数;
在映射关系中确定与所述接口调用参数对应的待调用场景中的待调用接口,其中,所述映射关系通过注解动态映射的方式预先构建完成;
调用所述待调用接口以实现所述待调用接口对应的功能。
2.根据权利要求1所述的方法,其特征在于,所述映射关系通过如下步骤预先构建完成:
获取自定义运行时的类注解和方法注解、及与所述类注解和所述方法注解对应的实体类,并基于预先设置的注解扫描类将所述类注解和所述方法注解写入所述实体类中,基于写入后的所述实体类构建出所述映射关系。
3.根据权利要求2所述的方法,其特征在于,所述实体类中设置有交易码、类名、类对象和方法。
4.根据权利要求3所述的方法,其特征在于,所述基于预先设置的注解扫描类将所述类注解和所述方法注解写入所述实体类中,包括:
以获取到的所述类对象和所述类名为入参参数,调用构建完成的注解写入函数,以将所述类注解和所述方法注解写入所述实体类中;
其中,所述注解写入函数设置于预先设置的注解处理类,所述注解处理类中设置有映射变量,所述注解写入函数通过所述映射变量将所述类注解和所述方法注解写入所述实体类中,所述映射变量是静态Map类型成员变量。
5.根据权利要求4所述的方法,其特征在于,所述注解写入函数通过如下步骤实现注解写入功能:
确定与所述类对象对应的所述类注解,在所述类注解非空时,获取与所述类对象关联的各所述方法构成的方法数组,并判断所述方法数组是否为空;
若否,则依次获取所述方法数组中的各方法对象、以及各所述方法对象的所述方法注解,并在所述方法注解不为空时,获取所述方法注解的所述交易码;
在所述交易码非空时,根据所述交易码从所述映射变量中获取与所述类名和所述类对象相应的实体对象,基于所述实体对象将所述类注解以及所述方法注解写入所述实体类中,其中,所述实体对象是所述实体类中的对象。
6.根据权利要求2所述的方法,其特征在于,还包括:通过所述方法注解注解所述待调用接口,且通过所述类注解注解所述待调用场景。
7.根据权利要求1所述的方法,其特征在于,所述在映射关系中确定与所述接口调用参数对应的待调用场景中的待调用接口,包括:
以所述接口调用参数为入参参数,调用已构建完成的接口确定函数,以在映射关系中确定与所述接口调用参数对应的待调用场景中的待调用接口,其中,所述接口确定函数设置于接口服务类中,所述接口服务类包括FacadeService类。
8.根据权利要求7所述的方法,其特征在于,所述接口确定函数通过如下步骤实现接口确定功能:
获取与所述接口调用参数对应的实体对象,并在所述实体对象非空时,从所述实体对象中获取类对象和方法对象;
根据所述类对象在所述映射关系中确定待调用场景,并根据所述方法对象在所述待调用场景中确定待调用接口。
9.根据权利要求1所述的方法,其特征在于,所述获取所述触发事件对应的接口调用参数,包括:基于入口类获取所述触发事件对应的接口调用参数,其中,所述入口类中通过注解方式注入接口服务类的接口服务对象。
10.根据权利要求9所述的方法,其特征在于,所述在映射关系中确定与所述接口调用参数对应的待调用场景中的待调用接口,包括:
通过所述入口类中的所述接口服务对象,在映射关系中确定与所述接口调用参数对应的待调用场景中的待调用接口。
11.根据权利要求1所述的方法,其特征在于,所述调用所述待调用接口以实现所述待调用接口对应的功能,包括:
调用所述待调用接口以对预设反射算法执行时间记录来监控耗时;或是,
调用所述待调用接口以根据所述接口调用参数中的可变长参数中的同异步参数控制所述预设反射算法中同步异步的执行;或是,
调用所述待调用接口以对所述可变长参数进行判断来过滤数据;或是,
调用所述待调用接口以对所述接口调用参数中的交易码进行分类来实现相应需求下的操作流水记录。
12.根据权利要求1所述的方法,其特征在于,所述映射关系中存储有所述接口调用参数、所述待调用场景和所述待调用接口间的对应关系。
13.一种接口调用装置,其特征在于,配置于服务器,所述装置包括:
参数获取模块,用于在监测到接口调用的触发事件时,获取所述触发事件对应的接口调用参数;
接口确定模块,用于在映射关系中确定与所述接口调用参数对应的待调用场景中的待调用接口,所述映射关系通过注解动态映射的方式预先构建完成;
接口调用模块,用于调用所述待调用接口实现所述待调用接口对应的功能。
14.一种服务器,其特征在于,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-12中任一所述的接口调用方法。
15.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-12中任一所述的接口调用方法。
CN202010994608.6A 2020-09-21 2020-09-21 一种接口调用方法、装置、服务器及存储介质 Pending CN112181535A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010994608.6A CN112181535A (zh) 2020-09-21 2020-09-21 一种接口调用方法、装置、服务器及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010994608.6A CN112181535A (zh) 2020-09-21 2020-09-21 一种接口调用方法、装置、服务器及存储介质

Publications (1)

Publication Number Publication Date
CN112181535A true CN112181535A (zh) 2021-01-05

Family

ID=73955673

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010994608.6A Pending CN112181535A (zh) 2020-09-21 2020-09-21 一种接口调用方法、装置、服务器及存储介质

Country Status (1)

Country Link
CN (1) CN112181535A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113625998A (zh) * 2021-08-10 2021-11-09 北京京东振世信息技术有限公司 一种请求处理方法和装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017008645A1 (zh) * 2015-07-13 2017-01-19 阿里巴巴集团控股有限公司 对http请求进行统一映射的方法和设备
CN108255905A (zh) * 2017-05-04 2018-07-06 平安科技(深圳)有限公司 接口调用数据处理方法、装置和计算机设备
CN110971664A (zh) * 2019-10-31 2020-04-07 北京浪潮数据技术有限公司 一种接口服务管理***
CN111027295A (zh) * 2019-11-11 2020-04-17 浙江大搜车软件技术有限公司 数据处理方法、装置、计算机设备和存储介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017008645A1 (zh) * 2015-07-13 2017-01-19 阿里巴巴集团控股有限公司 对http请求进行统一映射的方法和设备
CN108255905A (zh) * 2017-05-04 2018-07-06 平安科技(深圳)有限公司 接口调用数据处理方法、装置和计算机设备
CN110971664A (zh) * 2019-10-31 2020-04-07 北京浪潮数据技术有限公司 一种接口服务管理***
CN111027295A (zh) * 2019-11-11 2020-04-17 浙江大搜车软件技术有限公司 数据处理方法、装置、计算机设备和存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113625998A (zh) * 2021-08-10 2021-11-09 北京京东振世信息技术有限公司 一种请求处理方法和装置
CN113625998B (zh) * 2021-08-10 2023-11-03 北京京东振世信息技术有限公司 一种请求处理方法和装置

Similar Documents

Publication Publication Date Title
US10216527B2 (en) Automated software configuration management
US9311214B2 (en) System and methods for tracing individual transactions across a mainframe computing environment
KR101669630B1 (ko) 특정된 트랜젝션 콘텍스트에서의 소프트웨어의 조건부의 동적 인스트루먼테이션
CN110944048B (zh) 业务逻辑配置方法及装置
CN112148610A (zh) 测试用例执行方法、装置、计算机设备和存储介质
CN104346148A (zh) 获取程序性能消耗信息的方法、装置及***
CN114595201A (zh) 一种接口访问日志采集记录查询方法、设备及存储介质
CN112559306A (zh) 用户行为轨迹获取方法、装置与电子设备
CN112527600A (zh) 监控日志处理方法、装置、设备及存储介质
CN110457132B (zh) 一种功能对象的创建方法、装置和终端设备
CN111309743A (zh) 报表推送方法及装置
CN112181535A (zh) 一种接口调用方法、装置、服务器及存储介质
CN110443044A (zh) 区块链客户端漏洞挖掘方法、装置、设备及存储介质
CN113360210A (zh) 数据对账方法、装置、计算机设备和存储介质
CN111124627A (zh) 应用程序的调起者确定方法、装置、终端及存储介质
CN112817782B (zh) 一种数据采集上报方法、装置、电子设备和存储介质
CN110554892A (zh) 信息获取方法和装置
CN114648323A (zh) 面向业务场景的调用链处理方法、装置及介质
CN113448985A (zh) 一种api接口生成方法、调用方法、装置及电子设备
CN113254399A (zh) 日志查询方法、装置、电子设备及介质
CN109542413B (zh) 数据的处理方法、装置、存储介质和电子装置
CN109995617A (zh) 主机管理特性的自动化测试方法、装置、设备及存储介质
CN116644425B (zh) 基于Javaagent的Web漏洞即时阻断方法、装置、设备和存储介质
US20240039929A1 (en) System and method for threat detection across multiple cloud environments utilizing normalized event logs
CN117131086A (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