CN115357298A - 第三方接口的调用方法、处理器及存储介质 - Google Patents
第三方接口的调用方法、处理器及存储介质 Download PDFInfo
- Publication number
- CN115357298A CN115357298A CN202210883651.4A CN202210883651A CN115357298A CN 115357298 A CN115357298 A CN 115357298A CN 202210883651 A CN202210883651 A CN 202210883651A CN 115357298 A CN115357298 A CN 115357298A
- Authority
- CN
- China
- Prior art keywords
- annotation
- request
- target
- parameter
- interface
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 111
- 230000007246 mechanism Effects 0.000 claims abstract description 48
- 230000008569 process Effects 0.000 abstract description 9
- 230000006870 function Effects 0.000 description 107
- 238000004590 computer program Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 11
- 238000012545 processing Methods 0.000 description 7
- 235000010627 Phaseolus vulgaris Nutrition 0.000 description 3
- 244000046052 Phaseolus vulgaris Species 0.000 description 3
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000008094 contradictory effect Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012805 post-processing Methods 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- 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/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
-
- 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/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
- G06F9/4451—User profiles; Roaming
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
本申请实施例提供一种第三方接口的调用方法、处理器及存储介质。方法包括:获取针对第三方接口的调用指令,调用指令携带有请求注解;运行Java反射机制的执行函数以确定请求注解对应的代理对象和请求方式;查找代理对象对应的接口类;运行执行函数将接口类上的第一注解的路径参数确定为类路径;将执行函数的函数注解的路径参数确定为方法路径;根据接口类确定代理对象的服务包,得到服务包的包名地址;根据请求方式确定请求注解所对应的请求参数;根据包名地址、请求方式、类路径、方法路径以及请求参数生成针对第三方接口的接口请求,以根据接口请求调用第三方接口。采用上述方案不需要重复定义接口,简化了第三方接口的调用过程,提高了工作效率。
Description
技术领域
本申请涉及计算机技术领域,具体涉及一种第三方接口的调用方法、处理器及存储介质。
背景技术
目前,在进行第三方接口调用的时候,主要有两种方式:一种是基于第三方客户端来进行第三方接口调用;另一种是基于OpenFeign框架来进行第三方接口调用。第一种基于第三方客户端来进行第三方接口调用的步骤比较复杂,一般情况下需要经过构建第三方客户端对象、配置调用方法、配置请求参数、发起请求、解析返回结果等步骤。第二种基于OpenFeign框架来进行第三方接口调用则很简单。但是OpenFeign框架在使用时,需要消费方在项目代码中重新写一份接口,这份接口跟服务提供方项目中的代码一样。导致接口定义重复,进而使得接口的调用过程复杂,工作效率低下。
发明内容
本申请实施例的目的是提供一种第三方接口的调用方法、处理器及存储介质。
为了实现上述目的,本申请第一方面提供一种第三方接口的调用方法,包括:
获取针对第三方接口的调用指令,调用指令携带有请求注解;
调用Java反射机制的执行函数,运行执行函数以确定请求注解对应的目标代理对象和目标请求方式;
查找目标代理对象对应的接口类;
运行执行函数以确定接口类上的第一注解的路径参数以确定为类路径;
获取执行函数的函数注解的路径参数,以确定为方法路径;
根据目标代理对象对应的接口类确定目标代理对象的目标服务包,以得到目标服务包的包名地址;
根据目标请求方式确定请求注解所对应的目标请求参数;
根据包名地址、目标请求方式、类路径、方法路径以及目标请求参数生成针对第三方接口的接口请求,以根据接口请求调用第三方接口。
在本申请实施例中,调用Java反射机制的执行函数,运行执行函数以确定请求注解对应的目标代理对象和目标请求方式包括:调用Java反射机制的执行函数,运行执行函数扫描请求注解中是否包括第二注解;在确定请求注解中包括第二注解的情况下,确定目标请求方式为第一目标请求方式。
在本申请实施例中,调用Java反射机制的执行函数,运行执行函数以确定请求注解对应的目标代理对象和目标请求方式还包括:在确定请求注解中未包括第二注解的情况下,运行执行函数扫描请求注解中是否包括第三注解;在确定请求注解中包括第三注解的情况下,确定目标请求方式为第二目标请求方式。
在本申请实施例中,在确定请求注解中未包括第三注解的情况下,运行执行函数扫描请求注解中是否包括第一注解;在确定请求注解中包括第一注解的情况下,运行执行函数以获取第一注解的方法参数;在方法参数为第一方法参数的情况下,确定目标请求方式为第一目标请求方式;在方法参数为第二方法参数的情况下,确定目标请求方式为第二目标请求方式。
在本申请实施例中,方法还包括:目标请求方式包括第一目标请求方式,根据目标请求方式确定请求注解所对应的目标请求参数包括:在目标请求方式为第一目标请求方式的情况下,运行执行函数遍历第一目标请求方式的参数集,以得到参数集中每个第一参数的参数名称和参数值;按照预设顺序拼接多个第一参数的参数名称和参数值,以得到目标请求参数。
在本申请实施例中,方法还包括:目标请求方式包括第二目标请求方式,根据目标请求方式确定请求注解所对应的目标请求参数包括:在目标请求方式为第二目标请求方式的情况下,运行执行函数以获取第二目标请求方式的第二参数值;采用Json格式序列化第二参数值,得到第二参数值对应的字符串;将字符串确定为目标请求参数。
在本申请实施例中,方法还包括:在获取针对第三方接口的调用指令之前,生成配置文件,配置文件包括第一配置参数和第二配置参数,第一配置参数关联有指定的服务包,第二配置参数用于指定每个服务包的包名地址;查找目标代理对象对应的接口类包括:获取配置文件中的第一配置参数,并扫描第一配置参数关联的服务包;查找与第一配置参数关联的服务包中包括有第一注解的接口类。
在本申请实施例中,方法还包括:在生成配置文件之后,调用Java动态代理机制将包括有第一注解的接口类生成动态代理对象;并将动态代理对象注册至对象存储容器;运行执行函数以确定请求注解对应的目标代理对象和目标请求方式包括:运行执行函数,从对象存储容器中查找与请求注解对应的动态代理对象确定为目标代理对象。
在本申请实施例中,方法还包括:在根据接口请求调用第三方接口之后,接收第三方接口返回的数据;调用Java反射机制的执行函数,运行执行函数确定返回的数据的数据类型;根据数据类型,采用反序列操作将返回的数据反序列化为预设格式的数据。
本申请第二方面提供一种处理器,被配置成执行上述的第三方接口的调用方法。
本申请第三方面提供一种机器可读存储介质,该机器可读存储介质上存储有指令,该指令在被处理器执行时使得处理器被配置成执行上述的第三方接口的调用方法。
上述技术方案,通过调用Java反射机制的执行函数来确定第三方接口调用指令上请求注解对应的目标代理对象和目标请求方式。然后查找到目标代理对象对应的接口类。再运行执行函数确定接口类的第一注解的路径参数,从而得到类路径。并通过执行函数的函数注解中的路径参数来确定方法路径。接着根据目标代理对象对应的接口类确定目标代理对象的目标服务包,进而得到目标服务包的包名地址。且可以根据目标请求方式确定请求注解对应的目标请求参数。最后,根据包名地址、目标请求方式、类路径、方法路径以及目标请求参数生成针对第三方接口的接口请求,进而根据接口请求调用第三方接口。采用上述方案不需要重复定义接口,简化了第三方接口的调用过程,提高了工作效率。
本申请实施例的其它特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
附图是用来提供对本申请实施例的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本申请实施例,但并不构成对本申请实施例的限制。在附图中:
图1示意性示出了根据本申请实施例的第三方接口的调用方法的流程示意图;
图2示意性示出了根据本申请另一实施例的第三方接口的调用方法的流程示意图;
图3示意性示出了根据本申请实施例的计算机设备的内部结构图。
具体实施方式
以下结合附图对本申请实施例的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本申请实施例,并不用于限制本申请实施例。
需要说明,若本申请实施方式中有涉及方向性指示(诸如上、下、左、右、前、后……),则该方向性指示仅用于解释在某一特定姿态(如附图所示)下各部件之间的相对位置、关系、运动情况等,如果该特定姿态发生改变时,则该方向性指示也相应地随之改变。
另外,若本申请实施方式中有涉及“第一”、“第二”等的描述,则该“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施方式之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本申请要求的保护范围之内。
图1示意性示出了根据本申请实施例的第三方接口的调用方法的流程示意图。如图1所示,在本申请一个实施例中,提供了一种第三方接口的调用方法,包括:
步骤101,获取针对第三方接口的调用指令,调用指令携带有请求注解。
步骤102,调用Java反射机制的执行函数,运行执行函数以确定请求注解对应的目标代理对象和目标请求方式。
步骤103,查找目标代理对象对应的接口类。
步骤104,运行执行函数以确定接口类上的第一注解的路径参数以确定为类路径。
步骤105,获取执行函数的函数注解的路径参数,以确定为方法路径。
步骤106,根据目标代理对象对应的接口类确定目标代理对象的目标服务包,以得到目标服务包的包名地址。
步骤107,根据目标请求方式确定请求注解所对应的目标请求参数。
步骤108,根据包名地址、目标请求方式、类路径、方法路径以及目标请求参数生成针对第三方接口的接口请求,以根据接口请求调用第三方接口。
消费方发出的第三方接口的调用指令上携带有请求注解。注解可以是Java开发语言的一种语法,一般被标注在方法或者类或者成员变量上面。当Java运行时,这些注解会被当做是类或者方法或者成员变量的一个属性,可以通过Java反射技术来获取这些属性,从而根据这些属性里面的参数值来进行不同的处理。运行Java反射机制的执行函数可以得到请求注解对应的目标代理对象和目标请求方式。可以通过得到的目标请求方式来确定请求注解对应的目标请求参数。Java反射机制是指在程序的运行状态中,可以构造任意一个类的对象,可以了解任意一个对象所属的类,可以了解任意一个类的成员变量和方法,可以调用任意一个对象的属性和方法。目标代理对象可以是第三方接口被调用时对应的代理对象。其中,代理对象的作用是为其代理的对象也就是委托对象进行预处理消息、过滤消息、把消息转发给委托对象以及事后处理消息等操作。查找到目标代理对象对应的接口类,可以通过Java反射机制的执行函数来确定接口类上的第一注解的路径参数。可以将从接口类上的第一注解中获得的路径参数确定为类路径。
执行函数可以是调用Java反射机制进行工作的一种手段或者方法。执行函数上会有函数注解,通过获取执行函数上的函数注解的路径参数,可以将函数注解里的路径参数确定为方法路径。在确定目标代理对象对应的接口类之后,可以获得接口类对应的目标服务包,进而得到目标服务包的包名地址。也就是说,最后可以得到目标代理对象对应的目标服务包的包名地址,即第三方接口的调用指令对应的目标服务包的包名地址。在确定第三方接口的调用指令对应的包名地址、目标请求方式、类路径、方法路径以及目标请求参数后,可以根据上述参数生成针对第三方的接口请求,进而实现调用第三方接口。
在一个实施例中,生成配置文件,配置文件中可以包括第一配置参数和第二配置参数。其中,配置文件是一种计算机文件,可以为一些计算程序配置参数和初始设置。第一配置参数可以是ric.package参数,且第一配置参数关联有指定的服务包。第二配置参数可以是ric.url参数,可以用来指定每个服务包的包名地址。第一配置参数关联的服务包下有多个接口类,每一个接口类上配置有多种注解。
在一个实施例中,可以调用Java动态代理机制将有配置文件中的服务包中有第一注解的接口类生成动态代理对象,第一注解可以是@RequestMapping注解。在得到有第一注解的接口类的代理对象后,可以将这些代理对象注册到对象存储容器中,对象存储容器可以是SpringBoot bean容器。消费方发出的第三方接口的调用指令上携带有请求注解,运行Java反射机制的执行函数可以得到与请求注解对应的代理对象。通过代理对象可以找到与请求注解对应的接口类上的注解,其中,接口类为配置文件中与第一配置参数关联的服务包下的接口类。通过请求注解可以确定与第三方接口调用指令对应的配置文件中的接口类。通过接口类可以找到第三方接口调用指令在配置文件中对应的服务包,进而得到第三方接口调用指令对应的服务包的包名地址。
在一个实施例中,Java反射机制的执行函数上的函数注解可以是第一注解、第二注解或者第三注解中的任意一者。在函数注解为第一注解的情况下,获取第一注解中的路径参数,可以将该路径参数定义为调用第三方接口的方法路径。在函数注解为第二注解的情况下,获取第二注解中的路径参数,可以将该路径参数定义为调用第三方接口的方法路径。在函数注解为第三注解的情况下,获取第三注解中的路径参数,可以将该路径参数定义为调用第三方接口的方法路径。例如,函数注解中的第一注解可以是@RequestMapping注解,第二注解可以是@GetMapping注解,第三注解可以是@PostMapping注解。通过确定执行函数上的函数注解的类别以得到对应注解中的路径参数,进而确定消费方发出的第三方接口的调用指令对应的路径参数。在函数注解为@RequestMapping注解的情况下,将@RequestMapping注解中的路径参数确定为第三方接口的调用指令对应的路径参数。在函数注解为@GetMapping注解的情况下,将@GetMapping注解中的路径参数确定为第三方接口的调用指令对应的路径参数。在函数注解为@PostMapping注解的情况下,将@PostMapping注解中的路径参数确定为第三方接口的调用指令对应的路径参数。
在一个实施例中,消费方发出的第三方接口的调用指令上携带有请求注解,其中,请求注解可以是第一注解、第二注解和第三注解中的任意一者。可以调用Java反射机制的执行函数来扫描请求注解中是否包括第二注解,在请求注解中包括第二注解的情况下,可以确定请求注解对应的目标请求方式为第一目标请求方式。例如,第二注解可以是请求注解中的@GetMapping注解。消费方发出第三方接口的调用指令,通过Java反射机制的执行函数扫描调用指令上携带到的请求注解。在扫描到请求注解中有@GetMapping注解的情况下,可以确定此次调用指令的请求方式为第一目标请求方式,其中,第一目标请求方式可以是GET方式。
在一个实施例中,可以调用Java反射机制的执行函数来扫描请求注解中是否包括第二注解,在请求注解中未包括第二注解的情况下,可以运行该执行函数扫描请求注解中是否包括第三注解。在请求注解中包括第三注解的情况下,可以确定请求注解对应的目标请求方式为第二目标请求方式。例如,第三注解可以是请求注解中的@PostMapping注解。消费方发出第三方接口的调用指令,通过Java反射机制的执行函数扫描调用指令上携带到的请求注解。在扫描到请求注解中有@PostMapping注解的情况下,可以确定此次调用指令的请求方式为第二目标请求方式,其中,第二目标请求方式可以是POST方式。
在一个实施例中,可以调用Java反射机制的执行函数来扫描请求注解中是否包括第三注解,在请求注解中未包括第三注解的情况下,可以运行该执行函数扫描请求注解中是否包括第一注解。在请求注解中包括第一注解的情况下,再次运行上述执行函数,获取第一注解的方法参数。在第一注解的方法参数为第一方法参数的情况下,可以确定请求注解对应的目标请求方式为第一目标请求方式。在第一注解的方法参数为第二方法参数的情况下,可以确定请求注解对应的目标请求方式为第二目标请求方式。例如,第一注解可以是请求注解中的@RequestMapping注解。消费方发出第三方接口的调用指令,通过Java反射机制的执行函数扫描调用指令上携带到的请求注解。在扫描到请求注解中有@RequestMapping注解的情况下,再次通过Java反射机制的执行函数获取@RequestMapping注解的方法参数。在@RequestMapping注解的方法参数为第一方法参数,也就是GET参数的情况下,可以确定请求注解对应的目标请求方式为GET方式。在@RequestMapping注解的方法参数为第二方法参数,也就是POST参数的情况下,可以确定请求注解对应的目标请求方式为POST方式。
在一个实施例中,在确定目标请求方式之后,可以根据目标请求方式来确定请求注解对应的目标请求参数。在目标请求方式为第一目标请求方式的情况下,可以运行Java反射机制的执行函数遍历第一目标请求方式的参数集,可以得到参数集中每一个参数的参数名称和参数值。按照预设顺序拼接多个第一参数的参数名称和参数值,进而得到目标请求参数。例如,目标请求方式为第一目标请求方式,即GET方式。GET方式中有多个参数,运用Java反射机制遍历每一个参数,将每一个参数的参数名称和参数值按照预设顺序进行拼接,预设顺序可以是第一个参数的参数名称和参数值并上第二个参数的参数名称和参数值……,最终将拼接后的参数值和参数名称确定为目标请求参数。其中,目标请求参数可以是param1=value1¶m2=value2。
在一个实施例中,在确定目标请求方式之后,可以根据目标请求方式来确定请求注解对应的目标请求参数。在目标请求方式为第二目标请求方式的情况下,可以运行Java反射机制的执行函数获取第二目标请求方式的第二参数值。再采用Json格式序列化第二目标请求方式的第二参数值,得到第二参数值对应的字符串,进而确定目标请求参数。Json格式序列化是指将Json的对象处理为字符串的过程。例如,目标请求方式为第一目标请求方式,即POST方式。POST方式只支持一个参数,获得该参数后,采用Json格式序列化该参数,可以得到该参数对应的字符串。
在一个实施例中,在根据第三方接口的接口请求调用第三方接口之后,需要进行接收第三方接口返回的数据。运行Java反射机制的执行函数可以确定第三方接口返回的数据的数据类型。通过反序列操作可以将第三方接口返回的数据反序列化为预设格式的数据。其中,预设格式的数据可以是设计人员根据消费方的不同需求设计的数据格式。
图2示意性示出了根据本申请实施例的第三方接口的调用方法的流程示意图。如图2所示,服务提供方在提供服务的后端应用程序中设置有一个ric核心,该ric核心里面包含有配置文件。配置文件中有ric.package参数和ric.url参数,通过这两个参数可以得到配置文件中每一个服务包的包名以及包名地址。ric.package参数关联有多个服务包,每一个服务包下有多个接口类,每一个接口类上配有注解。其中,有RequestMapping注解的接口类可以通过Java动态代理机制生成该接口类对应的代理对象,并可以将这些代理对象注册到SpringBoot bean容器中。消费方可以在调用接口服务的后端应用程序上发送第三方接口的调用指令。第三方接口调用指令上携带有请求注解,调用Java反射机制的执行函数可以得到请求注解对应的代理对象。一方面可以通过代理对象上的注解可以在SpringBootbean容器中找到该代理对象对应的接口类,进而根据找到的接口类确定此接口类所属的服务包,最终得到服务包的包名地址。另一方面可以通过代理对象上的注解确定与请求注解对应的请求方式、类路径、方法路径请求参数。根据上述参数可以实现第三方接口的调用并将调用结果返回到服务端。通过上述方案不需要重复定义接口,简化了第三方接口调用过程,提高了工作效率。
本申请实施例提供了一种处理器,该处理器被配置成执行上述第三方接口的调用方法。
本申请实施例还提供了一种机器可读存储介质,该机器可读存储介质上存储有指令,该指令被处理器执行时使得该处理器能够执行上述任意实施例中描述的第三方接口的调用方法。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图3所示。该计算机设备包括通过系统总线连接的处理器A01、网络接口A02、存储器(图中未示出)和数据库(图中未示出)。其中,该计算机设备的处理器A01用于提供计算和控制能力。该计算机设备的存储器包括内存储器A03和非易失性存储介质A04。该非易失性存储介质A04存储有操作系统B01、计算机程序B02和数据库(图中未示出)。该内存储器A03为非易失性存储介质A04中的操作系统B01和计算机程序B02的运行提供环境。该计算机设备的数据库用于存储接口的调用指令的请求注解以及对象存储容器中的接口类上的注解数据。该计算机设备的网络接口A02用于与外部的终端通过网络连接通信。该计算机程序B02被处理器A01执行时以实现一种第三方接口的调用方法。
本领域技术人员可以理解,图3中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
本申请实施例提供了一种设备,设备包括处理器、存储器及存储在存储器上并可在处理器上运行的程序,处理器执行程序时实现以下步骤:获取针对第三方接口的调用指令,调用指令携带有请求注解;调用Java反射机制的执行函数,运行执行函数以确定请求注解对应的目标代理对象和目标请求方式;查找目标代理对象对应的接口类;运行执行函数以确定接口类上的第一注解的路径参数以确定为类路径;获取执行函数的函数注解的路径参数,以确定为方法路径;根据目标代理对象对应的接口类确定目标代理对象的目标服务包,以得到目标服务包的包名地址;根据目标请求方式确定请求注解所对应的目标请求参数;根据包名地址、目标请求方式、类路径、方法路径以及目标请求参数生成针对第三方接口的接口请求,以根据接口请求调用第三方接口。
在一个实施例中,调用Java反射机制的执行函数,运行执行函数以确定请求注解对应的目标代理对象和目标请求方式包括:调用Java反射机制的执行函数,运行执行函数扫描请求注解中是否包括第二注解;在确定请求注解中包括第二注解的情况下,确定目标请求方式为第一目标请求方式。
在一个实施例中,调用Java反射机制的执行函数,运行执行函数以确定请求注解对应的目标代理对象和目标请求方式还包括:在确定请求注解中未包括第二注解的情况下,运行执行函数扫描请求注解中是否包括第三注解;在确定请求注解中包括第三注解的情况下,确定目标请求方式为第二目标请求方式。
在一个实施例中,在确定请求注解中未包括第三注解的情况下,运行执行函数扫描请求注解中是否包括第一注解;在确定请求注解中包括第一注解的情况下,运行执行函数以获取第一注解的方法参数;在方法参数为第一方法参数的情况下,确定目标请求方式为第一目标请求方式;在方法参数为第二方法参数的情况下,确定目标请求方式为第二目标请求方式。
在一个实施例中,目标请求方式包括第一目标请求方式,根据目标请求方式确定请求注解所对应的目标请求参数包括:在目标请求方式为第一目标请求方式的情况下,运行执行函数遍历第一目标请求方式的参数集,以得到参数集中每个第一参数的参数名称和参数值;按照预设顺序拼接多个第一参数的参数名称和参数值,以得到目标请求参数。
在一个实施例中,目标请求方式包括第二目标请求方式,根据目标请求方式确定请求注解所对应的目标请求参数包括:在目标请求方式为第二目标请求方式的情况下,运行执行函数以获取第二目标请求方式的第二参数值;采用Json格式序列化第二参数值,得到第二参数值对应的字符串;将字符串确定为目标请求参数。
在一个实施例中,在获取针对第三方接口的调用指令之前,生成配置文件,配置文件包括第一配置参数和第二配置参数,第一配置参数关联有指定的服务包,第二配置参数用于指定每个服务包的包名地址;查找目标代理对象对应的接口类包括:获取配置文件中的第一配置参数,并扫描第一配置参数关联的服务包;查找与第一配置参数关联的服务包中包括有第一注解的接口类。
在一个实施例中,在生成配置文件之后,调用Java动态代理机制将包括有第一注解的接口类生成动态代理对象;并将动态代理对象注册至对象存储容器;运行执行函数以确定请求注解对应的目标代理对象和目标请求方式包括:运行执行函数,从对象存储容器中查找与请求注解对应的动态代理对象确定为目标代理对象。
在一个实施例中,在根据接口请求调用第三方接口之后,接收第三方接口返回的数据;调用Java反射机制的执行函数,运行执行函数确定返回的数据的数据类型;根据数据类型,采用反序列操作将返回的数据反序列化为预设格式的数据。
本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序:获取针对第三方接口的调用指令,调用指令携带有请求注解;调用Java反射机制的执行函数,运行执行函数以确定请求注解对应的目标代理对象和目标请求方式;查找目标代理对象对应的接口类;运行执行函数以确定接口类上的第一注解的路径参数以确定为类路径;获取执行函数的函数注解的路径参数,以确定为方法路径;根据目标代理对象对应的接口类确定目标代理对象的目标服务包,以得到目标服务包的包名地址;根据目标请求方式确定请求注解所对应的目标请求参数;根据包名地址、目标请求方式、类路径、方法路径以及目标请求参数生成针对第三方接口的接口请求,以根据接口请求调用第三方接口。
在一个实施例中,调用Java反射机制的执行函数,运行执行函数以确定请求注解对应的目标代理对象和目标请求方式包括:调用Java反射机制的执行函数,运行执行函数扫描请求注解中是否包括第二注解;在确定请求注解中包括第二注解的情况下,确定目标请求方式为第一目标请求方式。
在一个实施例中,调用Java反射机制的执行函数,运行执行函数以确定请求注解对应的目标代理对象和目标请求方式还包括:在确定请求注解中未包括第二注解的情况下,运行执行函数扫描请求注解中是否包括第三注解;在确定请求注解中包括第三注解的情况下,确定目标请求方式为第二目标请求方式。
在一个实施例中,在确定请求注解中未包括第三注解的情况下,运行执行函数扫描请求注解中是否包括第一注解;在确定请求注解中包括第一注解的情况下,运行执行函数以获取第一注解的方法参数;在方法参数为第一方法参数的情况下,确定目标请求方式为第一目标请求方式;在方法参数为第二方法参数的情况下,确定目标请求方式为第二目标请求方式。
在一个实施例中,目标请求方式包括第一目标请求方式,根据目标请求方式确定请求注解所对应的目标请求参数包括:在目标请求方式为第一目标请求方式的情况下,运行执行函数遍历第一目标请求方式的参数集,以得到参数集中每个第一参数的参数名称和参数值;按照预设顺序拼接多个第一参数的参数名称和参数值,以得到目标请求参数。
在一个实施例中,目标请求方式包括第二目标请求方式,根据目标请求方式确定请求注解所对应的目标请求参数包括:在目标请求方式为第二目标请求方式的情况下,运行执行函数以获取第二目标请求方式的第二参数值;采用Json格式序列化第二参数值,得到第二参数值对应的字符串;将字符串确定为目标请求参数。
在一个实施例中,在获取针对第三方接口的调用指令之前,生成配置文件,配置文件包括第一配置参数和第二配置参数,第一配置参数关联有指定的服务包,第二配置参数用于指定每个服务包的包名地址;查找目标代理对象对应的接口类包括:获取配置文件中的第一配置参数,并扫描第一配置参数关联的服务包;查找与第一配置参数关联的服务包中包括有第一注解的接口类。
在一个实施例中,在生成配置文件之后,调用Java动态代理机制将包括有第一注解的接口类生成动态代理对象;并将动态代理对象注册至对象存储容器;运行执行函数以确定请求注解对应的目标代理对象和目标请求方式包括:运行执行函数,从对象存储容器中查找与请求注解对应的动态代理对象确定为目标代理对象。
在一个实施例中,在根据接口请求调用第三方接口之后,接收第三方接口返回的数据;调用Java反射机制的执行函数,运行执行函数确定返回的数据的数据类型;根据数据类型,采用反序列操作将返回的数据反序列化为预设格式的数据。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (11)
1.一种第三方接口的调用方法,其特征在于,所述方法包括:
获取针对第三方接口的调用指令,所述调用指令携带有请求注解;
调用Java反射机制的执行函数,运行所述执行函数以确定所述请求注解对应的目标代理对象和目标请求方式;
查找所述目标代理对象对应的接口类;
运行所述执行函数以确定所述接口类上的第一注解的路径参数以确定为类路径;
获取所述执行函数的函数注解的路径参数,以确定为方法路径;
根据所述目标代理对象对应的接口类确定所述目标代理对象的目标服务包,以得到所述目标服务包的包名地址;
根据所述目标请求方式确定所述请求注解所对应的目标请求参数;
根据所述包名地址、所述目标请求方式、所述类路径、所述方法路径以及所述目标请求参数生成针对所述第三方接口的接口请求,以根据所述接口请求调用所述第三方接口。
2.根据权利要求1所述的第三方接口的调用方法,其特征在于,所述调用Java反射机制的执行函数,运行所述执行函数以确定所述请求注解对应的目标代理对象和目标请求方式包括:
调用Java反射机制的执行函数,运行所述执行函数扫描所述请求注解中是否包括第二注解;
在确定所述请求注解中包括第二注解的情况下,确定所述目标请求方式为第一目标请求方式。
3.根据权利要求2所述的第三方接口的调用方法,其特征在于,所述调用Java反射机制的执行函数,运行所述执行函数以确定所述请求注解对应的目标代理对象和目标请求方式还包括:
在确定所述请求注解中未包括所述第二注解的情况下,运行所述执行函数扫描所述请求注解中是否包括第三注解;
在确定所述请求注解中包括所述第三注解的情况下,确定所述目标请求方式为第二目标请求方式。
4.根据权利要求3所述的第三方接口的调用方法,其特征在于,所述调用Java反射机制的执行函数,运行所述执行函数以确定所述请求注解对应的目标代理对象和目标请求方式还包括:
在确定所述请求注解中未包括所述第三注解的情况下,运行所述执行函数扫描所述请求注解中是否包括第一注解;
在确定所述请求注解中包括所述第一注解的情况下,运行所述执行函数以获取所述第一注解的方法参数;
在所述方法参数为第一方法参数的情况下,确定所述目标请求方式为第一目标请求方式;
在所述方法参数为第二方法参数的情况下,确定所述目标请求方式为第二目标请求方式。
5.根据权利要求1所述的第三方接口的调用方法,其特征在于,所述目标请求方式包括第一目标请求方式,所述根据所述目标请求方式确定所述请求注解所对应的目标请求参数包括:
在所述目标请求方式为第一目标请求方式的情况下,运行所述执行函数遍历所述第一目标请求方式的参数集,以得到所述参数集中每个第一参数的参数名称和参数值;
按照预设顺序拼接多个第一参数的参数名称和参数值,以得到所述目标请求参数。
6.根据权利要求1所述的第三方接口的调用方法,其特征在于,所述目标请求方式包括第二目标请求方式,所述根据所述目标请求方式确定所述请求注解所对应的目标请求参数包括:
在所述目标请求方式为第二目标请求方式的情况下,运行所述执行函数以获取所述第二目标请求方式的第二参数值;
采用Json格式序列化所述第二参数值,得到所述第二参数值对应的字符串;
将所述字符串确定为所述目标请求参数。
7.根据权利要求1所述的第三方接口的调用方法,其特征在于,所述方法还包括:
在所述获取针对第三方接口的调用指令之前,生成配置文件,所述配置文件包括第一配置参数和第二配置参数,所述第一配置参数关联有指定的服务包,所述第二配置参数用于指定每个服务包的包名地址;
所述查找所述目标代理对象对应的接口类包括:
获取所述配置文件中的第一配置参数,并扫描所述第一配置参数关联的服务包;
查找与所述第一配置参数关联的服务包中包括有所述第一注解的接口类。
8.根据权利要求7所述的第三方接口的调用方法,其特征在于,所述方法还包括:
在生成配置文件之后,调用Java动态代理机制将包括有所述第一注解的接口类生成动态代理对象;
并将所述动态代理对象注册至对象存储容器;
运行所述执行函数以确定所述请求注解对应的目标代理对象和目标请求方式包括:
运行所述执行函数,从所述对象存储容器中查找与所述请求注解对应的动态代理对象确定为所述目标代理对象。
9.根据权利要求1所述的第三方接口的调用方法,其特征在于,所述方法还包括:
在根据所述接口请求调用所述第三方接口之后,接收所述第三方接口返回的数据;
调用Java反射机制的执行函数,运行所述执行函数确定所述返回的数据的数据类型;
根据所述数据类型,采用反序列操作将所述返回的数据反序列化为预设格式的数据。
10.一种处理器,其特征在于,被配置成执行根据权利要求1至9中任意一项所述的第三方接口的调用方法。
11.一种机器可读存储介质,该机器可读存储介质上存储有指令,其特征在于,该指令在被处理器执行时使得所述处理器被配置成执行根据权利要求1至9中任一项所述的第三方接口的调用方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210883651.4A CN115357298A (zh) | 2022-07-26 | 2022-07-26 | 第三方接口的调用方法、处理器及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210883651.4A CN115357298A (zh) | 2022-07-26 | 2022-07-26 | 第三方接口的调用方法、处理器及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115357298A true CN115357298A (zh) | 2022-11-18 |
Family
ID=84031063
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210883651.4A Pending CN115357298A (zh) | 2022-07-26 | 2022-07-26 | 第三方接口的调用方法、处理器及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115357298A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117111904A (zh) * | 2023-04-26 | 2023-11-24 | 领悦数字信息技术有限公司 | 用于将Web应用自动转换成无服务器函数的方法和系统 |
-
2022
- 2022-07-26 CN CN202210883651.4A patent/CN115357298A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117111904A (zh) * | 2023-04-26 | 2023-11-24 | 领悦数字信息技术有限公司 | 用于将Web应用自动转换成无服务器函数的方法和系统 |
CN117111904B (zh) * | 2023-04-26 | 2024-05-28 | 领悦数字信息技术有限公司 | 用于将Web应用自动转换成无服务器函数的方法和系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112748908B (zh) | 基于SSM框架的Restful服务开发方法与装置 | |
AU2018310287A1 (en) | Smart contract processing method and apparatus | |
CN111078315A (zh) | 微服务编排、执行方法及系统、架构、设备、存储介质 | |
CN110704037A (zh) | 一种规则引擎实现方法及装置 | |
JP7315786B2 (ja) | スマートコントラクトのクライアントプログラムの生成方法、システム、機器、及び媒体 | |
CN111343181B (zh) | 报文的处理方法,系统以及数据池和计算机可读存储介质 | |
CN111818175B (zh) | 企业服务总线配置文件生成方法、装置、设备和存储介质 | |
CN115599386A (zh) | 代码生成方法、装置、设备及存储介质 | |
CN110674205B (zh) | 单表查询方法、装置、终端及可读存储介质 | |
CN115357298A (zh) | 第三方接口的调用方法、处理器及存储介质 | |
CN111240772A (zh) | 一种基于区块链的数据处理方法、装置及存储介质 | |
CN112800194A (zh) | 一种接口变更识别方法、装置、设备及存储介质 | |
CN111309319A (zh) | 可继承的局数据动态页面配置方法和装置 | |
CN116755788A (zh) | 一种线上规则修改方法、装置、设备及存储介质 | |
CN115982257A (zh) | 接口创建方法以及相关设备 | |
CN114791884A (zh) | 测试环境的构建方法、装置、存储介质及电子设备 | |
CN117971350A (zh) | 小程序运行方法、装置和计算机可读存储介质 | |
CN114218278A (zh) | http接口的数据表字段查询方法及系统 | |
CN111309402A (zh) | 数据监测及针对应用程序的处理方法、装置及设备 | |
CN113704664A (zh) | 生成用于访问页面的路由地址的方法和装置 | |
CN109308256B (zh) | 一种java程序动态分析方法、设备和存储介质 | |
CN112540915A (zh) | 接口测试方法、装置和系统 | |
CN109150993B (zh) | 一种获取网络请求切面的方法、终端装置及存储介质 | |
CN112732240B (zh) | 一种Java组件的生成方法及装置 | |
CN113760408B (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 |