CN115543479A - 一种适用于动态参数的接口调用解析方法及装置 - Google Patents
一种适用于动态参数的接口调用解析方法及装置 Download PDFInfo
- Publication number
- CN115543479A CN115543479A CN202211198932.2A CN202211198932A CN115543479A CN 115543479 A CN115543479 A CN 115543479A CN 202211198932 A CN202211198932 A CN 202211198932A CN 115543479 A CN115543479 A CN 115543479A
- Authority
- CN
- China
- Prior art keywords
- interface
- target data
- dynamic
- data
- parameters
- 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
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/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)
- Stored Programmes (AREA)
Abstract
本申请提出了一种适用于动态参数的接口调用解析方法及装置,所述方法包括:配置接口的静态参数以及动态参数得到接口配置信息,其中所述动态参数内配置脚本代码,所述静态参数内至少包括目标数据地址,所述目标数据地址以树形结构的层级表示;当获取接口调用请求时,执行所述动态参数中的动态脚本代码获取实时参数值并填充到接口配置信息内得到实时接口信息,并依据所述目标数据地址获取目标数据,通过配置动态脚本的方式获取接口动态参数以及对接口的返回数据进行动态转换处理,以实现动态参数的数据的接入和处理。
Description
技术领域
本申请涉及接口数据的调用领域,特别是涉及一种适用于动态参数的接口调用解析方法及装置。
背景技术
接口是计算机系统中两个独立的部件进行信息交换的共享边界,这种交换可以发生在计算机软、硬件,外部设备或进行操作的人之间,也可以是它们的结合。目前的接口服务往往需要将接口的调用、解析等过程通过各种编程语言采用硬编码的方式实现,而目前实现的方式就是利用编码程序编写一段固定的接口的程序代码,一旦接口的内容或者接入方式发生变化就需要修改原有程序代码并且进行重新部署,存在不灵活以及效率低下的问题。
另外,目前的方案会将接口的接口信息采用配置的方式保存到数据库、缓存等存储介质,在调取接口读取接口信息式然后进行解析的方式,这种方式也往往存在如下问题:
①接口配置往往以静态参数为主、不支持动态接口参数的配置。
②接口返回数据的格式无法动态处理,如无法实现获取任意层级的目标数据。
③接口返回数据的字段键解析无法动态配置,只能采用硬编码方式。
④接口返回数据在进行脱敏、替换、数值运算等转换处理无法动态配置,
往往也只能采用硬编码的方式。
在诸如接口网关和接口中台的场景中,由于目前方案中各种注册的异构接口只能对其进行调用并返回接口原始结果,无法对其返回的数据结构或者数据值进行动态处理,这样就直接导致下游厂商对接接口时因为数据返回结构不统一也无法动态处理数据,就需要采用硬编码的方式对接,兼容性较差。
发明内容
本申请实施例提供了一种适用于动态参数的接口调用解析方法及装置,通过配置动态脚本的方式获取接口动态参数以及对接口的返回数据进行动态转换处理,以实现动态参数的数据的接入和处理。
第一方面,本申请实施例提供了一种适用于动态参数的接口调用解析方法,所述方法包括:
配置接口的静态参数以及动态参数得到接口配置信息,其中所述动态参数内配置脚本代码,所述静态参数内至少包括目标数据地址,所述目标数据地址以树形结构的层级表示;
当获取接口调用请求时,执行所述动态参数中的动态脚本代码获取实时参数值并填充到接口配置信息内得到实时接口信息,并依据所述目标数据地址获取目标数据。
第二方面,本申请实施例提供了一种适用于动态参数的接口调用装置,包括:
接口参数配置单元,用于配置接口的静态参数以及动态参数得到接口配置信息,其中所述动态参数内配置脚本代码,所述静态参数内至少包括目标数据地址,所述目标数据地址以树形结构的层级表示;
接口调用单元,用于当获取接口调用请求时,执行所述动态参数中的动态脚本代码获取实时参数值并填充到接口配置信息内得到实时接口信息,并依据所述目标数据地址获取目标数据。
第三方面,本申请实施例提供了一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以所述的适用于动态参数的接口调用解析方法。
第四方面,本方案提供了一种可读存储介质,所述可读存储介质中存储有计算机程序,所述计算机程序包括用于控制过程以执行过程的程序代码,所述过程包括所述的适用于动态参数的接口调用解析方法。
本发明的主要贡献和创新点如下:
结合动态脚本语言配置接口参数解决了接口调用过程中遇到动态参数时只能通过硬编码方式实现,而无法通过接口配置的方式动态生成参数的问题;且无需修改接口的原有程度接口调用代码,实现接口配置的一次配置多次使用。
基于返回的json格式数据通过将目标数据地址配置成树形接口,实现了对各种异构接口的接入都能动态处理所需要的目标数据,尤其对于接口平台这种包含各种返回结构接口的接入及数据处理,兼容性强,实现了任意层级的复杂数据都能够得到所需要的目标数据。
通过字段映射配置,采用正则表达式替换原有字段,解决了接口返回的字段与当前业务或者数据库表字段不匹配的问题,通过正则替换将原始数据字段键转换成能够解析的字段键而不用修改相关代码,实现了无需修改代码程序即可适配任意接口返回数据结构的解析工作,通过配置字段映射即可由程序自动处理转换成业务或者数据库表能够展示、存储的字段键。
结合动态脚本对数据进行转换处理,实现了在数据展示、同步、传输过程中对于数据进行特殊定制化的需求场景,如通过对字符类型数值进行字段截取、字段填充、字段替换、字段过滤或者数值类型数据进行算数运算等数据转换处理实现裁剪列、转换列、数据脱敏、数值运算等工作,本发明创新通过结合Groovy脚本实现对数据进行诸如数据脱敏、字符截取、字符替换、字符填充、数值算数运算等操作,而且可以自由配置和替换Groovy脚本,类似可插拔的插件。
本申请的一个或多个实施例的细节在以下附图和描述中提出,以使本申请的其他特征、目的和优点更加简明易懂。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请实施例的适用于动态参数的接口调用解析方法的流程图;
图2是根据本申请一种实施例的适用于动态参数的接口调用解析方法的逻辑流程图;
图3是根据本申请实施例的适用于动态参数的接口调用装置的结构框图;
图4是根据本申请实施例的电子装置的硬件结构示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书一个或多个实施例相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书一个或多个实施例的一些方面相一致的装置和方法的例子。
需要说明的是:在其他实施例中并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤。在一些其他实施例中,其方法所包括的步骤可以比本说明书所描述的更多或更少。此外,本说明书中所描述的单个步骤,在其他实施例中可能被分解为多个步骤进行描述;而本说明书中所描述的多个步骤,在其他实施例中也可能被合并为单个步骤进行描述。
实施例一
在介绍本方案之前首先对本方案涉及到专业术语进行解释说明:
Json:一种由属性和值组成的轻量级资料交换格式,其是独立于编程语言的资料格式,不仅是JavaScript的子集,也采用了C语言家族的习惯用法。JSON的基本数据类型有:数值、字符串、布尔值、数组(有序的零个或者多个值。每个值可以为任意类型。序列表使用方括号[,]括起来。元素之间用逗号,分割。形如:[value,value])、对象(若干无序的“键-值对”(key-value pairs),其中键只能是字符串、对象以花括号{开始,并以}结束、键-值对之间使用逗号分隔。键与值之间用冒号:分割)、空值:值写为null。一个有效的JSON文档的根节点必须是一个对象或一个数组。
超文本传输协议:是一种用于分布式、协作式和超媒体信息系统的应用层协议,通过HTTP或者HTTPS协议请求的资源由统一资源标识符(Uniform Resource Identifiers,URI)来标识。HTTP是一个客户端(用户)和服务端(网站)之间请求和应答的标准,通常使用TCP协议。通过使用网页浏览器、网络爬虫或者其它的工具,通常,由HTTP客户端发起一个请求,创建一个到服务器指定端口(默认是80端口)的TCP连接,HTTP服务器则在那个端口监听客户端的请求。一旦收到请求,服务器会向客户端返回一个状态,比如"HTTP/1.1 200OK",以及返回的内容,如请求的文件、错误消息、或者其它信息。
Java:是一种广泛使用的计算机编程语言,拥有跨平台、面向对象、泛型编程的特性,广泛应用于企业级Web应用开发和移动应用开发。Java继承了C++语言面向对象技术的核心,舍弃了容易引起错误的指针,以引用取代;移除了C++中的运算符重载和多重继承特性,用接口取代;增加垃圾回收器功能。
Groovy:是Java平台上设计的面向对象编程语言,Groovy代码动态地编译成运行于Java虚拟机(JVM)上的Java字节码,并与其他Java代码和库进行互操作,大多数Java代码也符合Groovy的语法规则,尽管可能语义不同。
本方案提供了一种适用于动态参数的接口调用解析方法,包括以下步骤:
配置接口的静态参数以及动态参数得到接口配置信息,其中所述动态参数内配置脚本代码,所述静态参数内至少包括目标数据地址,所述目标数据地址以树形结构的层级表示;
当获取接口调用请求时,执行所述动态参数中的动态脚本代码获取实时参数值并填充到接口配置信息内得到实时接口信息,并依据所述目标数据地址获取目标数据。
在一些实施例中,还包括步骤:
利用预设的字段映射关系转换所述目标数据得到解析数据,和/或
利用处理方法处理所述目标数据得到展示数据。
本方案提供的适用于动态参数的接口调用解析方法在不需要更改接口的原有程序接口代码的前提下,解决了接口调用过程中无法兼容动态参数的问题。具体的,本方案的解决手段是通过在配置接口的动态参数时关联脚本代码,以实现在调用数据接口时可通过脚本代码来获取实时的动态参数的效果。
在“配置接口的静态参数以及动态参数得到接口配置信息,其中所述动态参数内配置脚本代码”步骤中,接口的接口配置信息至少包括请求方式、请求头类型、请求地址、请求参数、请求头、接口返回成功标志位、以及目标数据地址,其中所述请求头以及所述请求参数可以是动态参数也可以是静态参数,所述请求方式、请求头类型、请求地址、接口返回成功标志位、以及目标数据地址为静态参数。当所述请求头以及所述请求参数为动态参数时,对其配置脚本代码。
以下将对接口配置信息进行详细的说明:
请求方式:包括但不限于GET、POST、PUT、DELETE、HEAD、OPTIONS,一般选择为GET以及POST。
请求头类型:用于客户端告诉服务器实际发送的数据类型,常见有表单提交和json格式数据提交两种请求头类型。
请求地址:表示请求的接口地址,一般包括服务器ip地址信息、端口信息以及接口路径参数信息,比如接口地址可配置为:http://10.12.102.1:8080/user/info。
请求参数:用于配置请求的参数信息,请求参数可以是静态参数,比如以GET和POST为例,GET参数配置如:?Name=zs;POST参数以json的方式如:
{"name":"zs"},表示查询参数姓名"name"值是"zs"的数据。请求参数也可以是动态参数,比如请求参数需要做算数运算或者根据当前时间做关联,此时在调用接口时就需要执行脚本代码以获取参数值或运算之后的值。
请求头:为http的报文头,报文头包含若干个属性,格式为“属性名:属性值”的键值对,服务端据此获取客户端的信息。比如常见的用于校验是否有接口调用权限的token设置如:{"token":"token value"}。请求头在一些情况也是动态参数。
在一些情况下需要对接口进行安全验证,比如通过约定的加密算法设置动态的请求头。示例性,若需要对每次请求接口时在请求头添加签名验证,假设签名的格式:应用秘钥+请求时间经过MD5加密算法生成的字符串,接口服务方会根据传递的参数以相同的加密方式生成签名进行校验,如果签名相同则放行,否则提示无权调用接口,则此时的请求头需要实时地获取当前的请求时间,而请求时间就是一个动态参数,不同时刻进行请求时的请求时间是不同的。
接口返回成功标志位:用于在调用接口时判断接口调用是否成功,由于各个业务的接口返回结构不尽相同,故判断接口是否成功调用需要对某个字段的值进行判断,该字段为接口返回成功标志位。本方案通过接口返回成功标志位的配置可适配于不同的异构接口。
示例性的,数据格式:
该配置表示接口返回成功标志位是字段“success”。
目标数据地址,用于定位目标数据所在的地址。值得一提的是,本方案的所述目标数据地址以树形结构的层级表示,这样配置的好处在于:对于接口平台这种包含各种返回结构接口的接入及数据处理,兼容性强,实现了任意层级的复杂数据都能够得到所需要的目标数据。
具体的,本方案的目标数据以josn的树形结构展示,利用目标数据在树形结构中的层级来表示目标数据地址,换言之,所述目标数据地址包括目标数据字段加上树形结构的层级。
在“所述动态参数内配置脚本代码”步骤中,脚本代码为Groovy脚本代码,Groovy脚本代码的内容根据动态参数的获取方式确定,后续利用Groovy动态执行所述Groovy脚本代码以获取动态参数。
Groovy是用于Java虚拟机的一种敏捷的动态语言,使用该种语言不必编写过多的代码,同时又具有闭包和动态语言中的其他特性,使用方式基本与使用Java代码的方式相同。Groovy的脚本片段、Groovy class类最终都会编译成Java class字节码,这使得Groovy与Java代码的互操作很容易。Groovy的编译过程与Java的过程一样,预编译过程和直接调用过程一样,Javac和Groovyc编译都生成了.class字节码文件,差异在于运行时是通过标准的ClassLoader加载类文件,而直接调用时则是通过GroovyClassLoader加载源文件,并在内存中直接加载二进制流。
在一些实施例中,接口配置信息、字段映射关系以及处理方法均保存在数据库或者缓当中,在使用时查询对应的接口配置信息、字段映射关系以及处理方法即可。优选地,可采用诸如redis等内存缓存的方式存储,避免每次接口调用时都去数据库查询接口配置信息,通过redis可直接内存读取接口配置信息,从而大大提高接口调用的速度与并发。
在“当获取接口调用请求时”步骤中,本方案可通过各种http接口调用工具进行接口调用,在接口调用时将对应的接口配置信息填充到对应的接口调用框架中。
在本方案的一些实施例中,利用Apache common封装好的HttpClient或者项目集成forest等开源的接口调用框架对接口配置信息中的参数进行填充,对配置了动态脚本代码的动态参数执行之后再进行填充。且本方案可通过接口返回成功标志位判断接口调用是否成功。
在“执行所述动态参数中的动态脚本代码获取实时参数值并填充到接口配置信息内得到实时接口信息”时,可在程序运行时解析并加载Groovy脚本到jvm当中进行执行。
在“依据所述目标数据地址获取目标数据”步骤进一步包括:
识别所述目标数据地址中的代表树形结构层级的层级符号并在层级符号前添加分割符,基于所述分割符将所述目标数据地址转换为地址数组;
根据所述接口获取原始数据,将所述原始数据转换为树形结构;
依据所述地址数组解析所述树形结构得到目标数据。
本方案的地址数组的元素包括数组类型字段键和map类型字段键,在“依据所述地址数组解析所述树形结构得到目标数据”步骤中,依据所述地址数组的map字段键将所述原始数据转换为Java Map对象,利用map函数获取Java Map对象中map类型字段键对应的数据对象;依据所述地址数组中的数组类型字段键将所述数据对象转换为Java对象数组,获取所述Java对象数组中对应数组类型字段键的值。
示例性,若返回的json格式数据为包含嵌套关系的结构,如下所示:
而目标地址为"data"的第一条数据的name字段,则配置目标数据地址为"data[0].name",表示data数组的第一个元素对象的“name”字段值,这里的[0]表示取数组的第一个数据、类比[1]、[2]...[n-1]表示取数组的第二个,第三个...第n个数据。
在解析所述目标数据地址时对该地址进行处理,通过字符替换将"["替换成".[",得到新的地址:"data.[0].name",并指定分割符"."通过字符串处理工具转换成地址数组:["data","[0]","name"],该地址数组包含"data","[0]","name"3个元素。对原始数据进行处理转成JSON格式,可以采用阿里的fastJson或者谷歌的gson等Json解析框架。
接下来通过遍历地址数组的方式一步步解析需要处理的数据,将地址数组中的元素分为两类:map类型的字段键,如"data"、"name"和数组类型的字段键,如"[0]"。
"data"是map类型字段键所以通过将原始数据转换成Java Map对象,用Map相关函数即可获取字段"data"对应的值为:
"[0]"为数组类型的字段键,将第一步获取的数据对象转成Java对象数组,通过对应的数组下标获取"[0]"对应的值为:
最后一个元素"name"为map类型的字段键,将上一步的结果对象转成Map对象通过Map的函数获取"name"对应的值为:"小明"。
通过上述步骤已能够获取目标数据,但在实际应用过程中会出现获取的目标数据的字段键和数据库表字段或者业务解析字段不同的情况,此时可通过预设的字段映射关系转换所述目标数据得到可以解析的数据。
所述预设的字段映射关系配置可解析格式和目标数据格式之间的映射关系。在一些实施例中,所述预设的字段映射关系配置目标数据的字段和可解析格式的解析数据的字段之间的映射关系,以{“解析数据的字段”:$“目标数据的字段”}的形式存在。
示例性,若目标数据为:
但前端页面已有代码可解析格式的解析数据为:
此时所述预设的字段映射关系为:name->userName,age->userAge,生成如下的字段映射关系为:{"userName":${name},"userAge":${age}}。
在“利用预设的字段映射关系转换所述目标数据得到解析数据”步骤中,利用正则表达式匹配所述字段映射关系中对应目标数据的字段,并获取所述目标数据中对应字段内的字段值,利用获取的所述字段值替换所述字段映射关系中所述目标数据的字段得到解析数据。
示例性,字段映射关系为:{"userName":${name},"userAge":${age}}。通过正则表达式${(.*?)}去匹配${}内的目标数据的字段,如果匹配上,首先通过JSON相关函数获取${}内的目标数据的字段对应的字段值,比如${name}对应的value值是"小明",${age}对应的value值是20,然后将字段映射关系中的目标数据的字段整个替换成value值,则${name}替换成"小明",${age}替换成20,最终处理得到的json字符{"userName":"小明","userAge":20},此时已经转换成能够正常解析的解析数据。
另外,在数据展示、同步或传输过程中,存在用户对于数据传输进行定制化的需求场景,比如:数据脱敏、字段截取、字段替换、字段填充以及数据运算等,故本方案在获取到目标数据之后还可通过需求的处理方法对数据进行处理,得到展示数据。
具体的,若需要对数据进行脱敏,则所述处理方法为对目标数据中的敏感数据进行脱敏。示例性的,若敏感数据为用户姓名,则将所述目标数据中的敏感数据替换为脱敏数据。
示例性,将“小明”替换为“小***”,则最终得到的展示数据。为:
当然处理方法根据业务需求不同可有不同的选择,比如字符截取固定长度、字符替换、字符填充、数据算数运算等处理方法,根据实际的情况选择处理方法并将处理方法配置成Groovy脚本即可。
实施例二
基于相同的构思,参考图3,本申请还提出了一种适用于动态参数的接口调用装置,包括:
接口参数配置单元,用于配置接口的静态参数以及动态参数得到接口配置信息,其中所述动态参数内配置脚本代码,所述静态参数内至少包括目标数据地址,所述目标数据地址以树形结构的层级表示;
接口调用单元,用于当获取接口调用请求时,执行所述动态参数中的动态脚本代码获取实时参数值并填充到接口配置信息内得到实时接口信息,并依据所述目标数据地址获取目标数据。
在一些实施例中,还包括:
转换单元,用于利用预设的字段映射关系转换所述目标数据得到解析数据,和/或
处理单元,用于利用处理方法处理所述目标数据得到展示数据。
关于该实施例二中同于实施例一相同的技术内容,在此不进行累赘说明。
实施例三
本实施例还提供了一种电子装置,参考图4,包括存储器404和处理器402,该存储器404中存储有计算机程序,该处理器402被设置为运行计算机程序以执行上述任一项适用于动态参数的接口调用解析方法实施例中的步骤。
具体地,上述处理器402可以包括中央处理器(CPU),或者特定集成电路(ApplicationSpecificIntegratedCircuit,简称为ASIC),或者可以被配置成实施本申请实施例的一个或多个集成电路。
其中,存储器404可以包括用于数据或指令的大容量存储器404。举例来说而非限制,存储器404可包括硬盘驱动器(HardDiskDrive,简称为HDD)、软盘驱动器、固态驱动器(SolidStateDrive,简称为SSD)、闪存、光盘、磁光盘、磁带或通用串行总线(UniversalSerialBus,简称为USB)驱动器或者两个或更多个以上这些的组合。在合适的情况下,存储器404可包括可移除或不可移除(或固定)的介质。在合适的情况下,存储器404可在数据处理装置的内部或外部。在特定实施例中,存储器404是非易失性(Non-Volatile)存储器。在特定实施例中,存储器404包括只读存储器(Read-OnlyMemory,简称为ROM)和随机存取存储器(RandomAccessMemory,简称为RAM)。在合适的情况下,该ROM可以是掩模编程的ROM、可编程ROM(ProgrammableRead-OnlyMemory,简称为PROM)、可擦除PROM(ErasableProgrammableRead-OnlyMemory,简称为EPROM)、电可擦除PROM(ElectricallyErasableProgrammableRead-OnlyMemory,简称为EEPROM)、电可改写ROM(ElectricallyAlterableRead-OnlyMemory,简称为EAROM)或闪存(FLASH)或者两个或更多个以上这些的组合。在合适的情况下,该RAM可以是静态随机存取存储器(StaticRandom-AccessMemory,简称为SRAM)或动态随机存取存储器(DynamicRandomAccessMemory,简称为DRAM),其中,DRAM可以是快速页模式动态随机存取存储器404(FastPageModeDynamicRandomAccessMemory,简称为FPMDRAM)、扩展数据输出动态随机存取存储器(ExtendedDateOutDynamicRandomAccessMemory,简称为EDODRAM)、同步动态随机存取内存(SynchronousDynamicRandom-AccessMemory,简称SDRAM)等。
存储器404可以用来存储或者缓存需要处理和/或通信使用的各种数据文件,以及处理器402所执行的可能的计算机程序指令。
处理器402通过读取并执行存储器404中存储的计算机程序指令,以实现上述实施例中的任意一种适用于动态参数的接口调用解析方法。
可选地,上述电子装置还可以包括传输设备406以及输入输出设备408,其中,该传输设备406和上述处理器402连接,该输入输出设备408和上述处理器402连接。
传输设备406可以用来经由一个网络接收或者发送数据。上述的网络具体实例可包括电子装置的通信供应商提供的有线或无线网络。在一个实例中,传输设备包括一个网络适配器(Network Interface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输设备406可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
输入输出设备408用于输入或输出信息。在本实施例中,输入的信息可以是接口调用请求等,输出的信息可以是目标数据,处理数据,展示数据等。
可选地,在本实施例中,上述处理器402可以被设置为通过计算机程序执行以下步骤:
配置接口的静态参数以及动态参数得到接口配置信息,其中所述动态参数内配置脚本代码,所述静态参数内至少包括目标数据地址,所述目标数据地址以树形结构的层级表示;
当获取接口调用请求时,执行所述动态参数中的动态脚本代码获取实时参数值并填充到接口配置信息内得到实时接口信息,并依据所述目标数据地址获取目标数据。
需要说明的是,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。
通常,各种实施例可以以硬件或专用电路、软件、逻辑或其任何组合来实现。本发明的一些方面可以以硬件来实现,而其他方面可以以可以由控制器、微处理器或其他计算设备执行的固件或软件来实现,但是本发明不限于此。尽管本发明的各个方面可以被示出和描述为框图、流程图或使用一些其他图形表示,但是应当理解,作为非限制性示例,本文中描述的这些框、装置、系统、技术或方法可以以硬件、软件、固件、专用电路或逻辑、通用硬件或控制器或其他计算设备或其某种组合来实现。
本发明的实施例可以由计算机软件来实现,该计算机软件由移动设备的数据处理器诸如在处理器实体中可执行,或者由硬件来实现,或者由软件和硬件的组合来实现。包括软件例程、小程序和/或宏的计算机软件或程序(也称为程序产品)可以存储在任何装置可读数据存储介质中,并且它们包括用于执行特定任务的程序指令。计算机程序产品可以包括当程序运行时被配置为执行实施例的一个或多个计算机可执行组件。一个或多个计算机可执行组件可以是至少一个软件代码或其一部分。另外,在这一点上,应当注意,如图中的逻辑流程的任何框可以表示程序步骤、或者互连的逻辑电路、框和功能、或者程序步骤和逻辑电路、框和功能的组合。软件可以存储在诸如存储器芯片或在处理器内实现的存储块等物理介质、诸如硬盘或软盘等磁性介质、以及诸如例如DVD及其数据变体、CD等光学介质上。物理介质是非瞬态介质。
本领域的技术人员应该明白,以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。
Claims (10)
1.一种适用于动态参数的接口调用解析方法,其特征在于,包括以下步骤:
配置接口的静态参数以及动态参数得到接口配置信息,其中所述动态参数内配置脚本代码,所述静态参数内至少包括目标数据地址,所述目标数据地址以树形结构的层级表示;
当获取接口调用请求时,执行所述动态参数中的动态脚本代码获取实时参数值并填充到接口配置信息内得到实时接口信息,并依据所述目标数据地址获取目标数据。
2.根据权利要求1所述的适用于动态参数的接口调用解析方法,其特征在于,包括步骤:利用预设的字段映射关系转换所述目标数据得到解析数据。
3.根据权利要求1所述的适用于动态参数的接口调用解析方法,其特征在于,利用处理方法处理所述目标数据得到展示数据。
4.根据权利要求1所述的适用于动态参数的接口调用解析方法,其特征在于,对配置了动态脚本代码的动态参数执行之后获取实时接口信息,实时接口信息和静态参数填充在接口调用时填充到对应的接口调用框架中。
5.根据权利要求1所述的适用于动态参数的接口调用解析方法,其特征在于,“依据所述目标数据地址获取目标数据”步骤包括:识别所述目标数据地址中的代表树形结构层级的层级符号并在层级符号前添加分割符,基于所述分割符将所述目标数据地址转换为地址数组;根据所述接口获取原始数据,将所述原始数据转换为树形结构;依据所述地址数组解析所述树形结构得到目标数据,所述目标数据地址包括目标数据字段加上树形结构的层级。
6.根据权利要求5所述的适用于动态参数的接口调用解析方法,其特征在于,在“依据所述地址数组解析所述树形结构得到目标数据”步骤中,地址数组的元素包括数组类型字段键和map类型字段键,依据所述地址数组的map字段键将所述原始数据转换为Java Map对象,利用map函数获取Java Map对象中map类型字段键对应的数据对象;依据所述地址数组中的数组类型字段键将所述数据对象转换为Java对象数组,获取所述Java对象数组中对应数组类型字段键的值。
7.根据权利要求2所述的适用于动态参数的接口调用解析方法,其特征在于,所述预设的字段映射关系配置目标数据的字段和可解析格式的解析数据的字段之间的映射关系,利用正则表达式匹配所述字段映射关系中对应目标数据的字段,并获取所述目标数据中对应字段内的字段值,利用获取的所述字段值替换所述字段映射关系中所述目标数据的字段得到解析数据。
8.一种适用于动态参数的接口调用装置,其特征在于,包括:
接口参数配置单元,用于配置接口的静态参数以及动态参数得到接口配置信息,其中所述动态参数内配置脚本代码,所述静态参数内至少包括目标数据地址,所述目标数据地址以树形结构的层级表示;
接口调用单元,用于当获取接口调用请求时,执行所述动态参数中的动态脚本代码获取实时参数值并填充到接口配置信息内得到实时接口信息,并依据所述目标数据地址获取目标数据。
9.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行权利要求1到7任一所述的适用于动态参数的接口调用解析方法。
10.一种可读存储介质,其特征在于,所述可读存储介质中存储有计算机程序,所述计算机程序包括用于控制过程以执行过程的程序代码,所述过程包括根据权利要求1到7任一所述的适用于动态参数的接口调用解析方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211198932.2A CN115543479A (zh) | 2022-09-29 | 2022-09-29 | 一种适用于动态参数的接口调用解析方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211198932.2A CN115543479A (zh) | 2022-09-29 | 2022-09-29 | 一种适用于动态参数的接口调用解析方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115543479A true CN115543479A (zh) | 2022-12-30 |
Family
ID=84731145
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211198932.2A Pending CN115543479A (zh) | 2022-09-29 | 2022-09-29 | 一种适用于动态参数的接口调用解析方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115543479A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115878630A (zh) * | 2023-02-01 | 2023-03-31 | 天翼云科技有限公司 | 一种自定义接口调用方法、装置、电子设备和存储介质 |
CN117707653A (zh) * | 2024-02-06 | 2024-03-15 | 天津医康互联科技有限公司 | 参数监控方法、装置、电子设备及计算机可读存储介质 |
-
2022
- 2022-09-29 CN CN202211198932.2A patent/CN115543479A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115878630A (zh) * | 2023-02-01 | 2023-03-31 | 天翼云科技有限公司 | 一种自定义接口调用方法、装置、电子设备和存储介质 |
WO2024159965A1 (zh) * | 2023-02-01 | 2024-08-08 | 天翼云科技有限公司 | 一种自定义接口调用方法、装置、电子设备和存储介质 |
CN117707653A (zh) * | 2024-02-06 | 2024-03-15 | 天津医康互联科技有限公司 | 参数监控方法、装置、电子设备及计算机可读存储介质 |
CN117707653B (zh) * | 2024-02-06 | 2024-05-10 | 天津医康互联科技有限公司 | 参数监控方法、装置、电子设备及计算机可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2976709B1 (en) | Systems and methods for intercepting, processing, and protecting user data through web application pattern detection | |
CN110381135B (zh) | 接口创建方法、服务请求方法、装置、计算机设备和介质 | |
CN108965203B (zh) | 一种资源访问方法及服务器 | |
CN103607385B (zh) | 基于浏览器进行安全检测的方法和装置 | |
US8627442B2 (en) | Hierarchical rule development and binding for web application server firewall | |
US9762439B2 (en) | Configuration command template creation assistant using cross-model analysis to identify common syntax and semantics | |
CN115543479A (zh) | 一种适用于动态参数的接口调用解析方法及装置 | |
CN113711561A (zh) | 基于意图的治理服务 | |
CN112615759B (zh) | 全链路压测组件、全链路压测方法及装置 | |
CN111625782B (zh) | 源码的访问权限控制方法、装置、计算机设备和存储介质 | |
CN102739654A (zh) | 一种实现应用程序访问数据库的方法 | |
CN107995153B (zh) | 表单数据验证方法及表单数据验证装置 | |
CN111683066A (zh) | 异构系统集成方法、装置、计算机设备和存储介质 | |
CN109614147A (zh) | 一种phy寄存器读写方法和装置 | |
CN112817935A (zh) | 基于字段类型的数据处理方法、装置、设备及存储介质 | |
CN108021564A (zh) | 一种页面重定向的方法和设备 | |
CN116634046A (zh) | 报文处理方法、装置、电子设备及存储介质 | |
EP2354941B1 (en) | Mainframe injection component and method for manipulating data packets communicated between emulators and mainframes | |
US20190012221A1 (en) | Collaboration system protocol processing | |
US11533282B1 (en) | Specifying and testing open communication protocols | |
CN113901377B (zh) | 遗留系统的服务调用方法、装置、存储介质及设备 | |
CN115086393B (zh) | 一种接口调用方法、装置、设备及存储介质 | |
US20240291772A1 (en) | Application programming interface for multiple network resources | |
CN115442442A (zh) | 网络请求数据的处理方法、装置、计算机设备及存储介质 | |
CN118113586A (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 |