CN114048049A - 一种应用程序的接口调用方法、接口调用装置和电子设备 - Google Patents

一种应用程序的接口调用方法、接口调用装置和电子设备 Download PDF

Info

Publication number
CN114048049A
CN114048049A CN202111362153.7A CN202111362153A CN114048049A CN 114048049 A CN114048049 A CN 114048049A CN 202111362153 A CN202111362153 A CN 202111362153A CN 114048049 A CN114048049 A CN 114048049A
Authority
CN
China
Prior art keywords
interface
target
calling
scene
service
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
CN202111362153.7A
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.)
Zhongdian Jinxin Software Co Ltd
Original Assignee
Zhongdian Jinxin Software Co 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 Zhongdian Jinxin Software Co Ltd filed Critical Zhongdian Jinxin Software Co Ltd
Priority to CN202111362153.7A priority Critical patent/CN114048049A/zh
Publication of CN114048049A publication Critical patent/CN114048049A/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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/549Remote execution

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

一种应用程序的接口调用方法、接口调用装置和电子设备
技术领域
本申请涉及计算机技术领域,尤其是涉及一种应用程序的接口调用方 法、接口调用装置和电子设备。
背景技术
微服务架构下,各业务系统提供的与业务场景对应的业务服务被拆分 为多个独立的微服务。
目前,现有技术中只能鉴别应用程序是否有权限调用单独的一个微服 务对应的应用程序接口,但无法鉴别对不同应用程序接口的调用之间是否 存在关联关系,这就容易引起在前置应用程序接口未成功调用的情况下就 调用了后续的应用程序接口而产生的“水平越权”事件。
发明内容
有鉴于此,本申请的目的在于提供一种应用程序的接口调用方法、接 口调用装置和电子设备,能够在确定应用程序有权调用目标接口后,确定 目标接口是否满足调用条件,从而确保应用程序能按照预先设定的关联关 系调用接口,避免引起在前置应用程序接口未成功调用的情况下就调用了 后续的应用程序接口而产生的“水平越权”事件。
本申请实施例提供了一种应用程序的接口调用方法,所述接口调用方 法包括:
获取目标应用程序针对目标业务的接口调用请求;
基于预存的权限相关数据和所述接口调用请求,确定所述目标应用程 序是否在所述目标业务的场景下有权限调用目标接口;
如果所述目标应用程序在所述目标业务的场景下有权限调用所述目标 接口,则确定在所述目标业务的场景下与所述目标接口对应的场景流水码; 所述场景流水码为标识所述目标应用程序请求完成一次所述目标业务的唯 一编码;
确定在所述场景流水码下所述目标接口是否满足调用条件;
若在所述场景流水码下所述目标接口满足调用条件,则通过所述目标 接口调用对应的系统服务。
进一步的,所述确定在所述场景流水码下所述目标接口是否满足调用 条件,包括:
在所述场景流水码下,确定是否存在与所述场景流水码对应的之前所 缓存的接口执行信息;所述接口执行信息包括在所述目标业务的场景下调 用接口的过程中所产生的相关信息;
若不存在所述接口执行信息,则确定在所述场景流水码下所述目标接 口满足调用条件;
若存在所述接口执行信息,则基于所述接口执行信息,获取在所述场 景流水码下的上一个调用成功的接口的调用序号,当所述目标接口对应的 调用序号为所述上一个调用成功的接口对应的调用序号的下一个调用序号 时,则确定所述目标接口满足调用条件。
进一步的,所述确定在所述目标业务的场景下与所述目标接口对应的 场景流水码,包括:
确定所述接口调用请求是否包括场景流水码;
如果所述接口调用请求不包括场景流水码,则确定所述目标接口在数 据结构信息中所对应的调用序号;所述数据结构信息包括目标应用程序在 目标业务的场景下完成目标业务所调用的所有接口按调用顺序排列后得到 的顺序列表;
若所述调用序号指示所述目标接口为首个应被调用的接口,则向所述 目标应用程序发送指示产生与所述目标接口对应的场景流水码的通知消息, 并接收所述目标应用程序基于所述通知消息产生的与所述目标接口对应的 场景流水码;
如果所述接口调用请求包括场景流水码,则将该场景流水码确定为与 所述目标接口对应的场景流水码。
进一步的,通过以下步骤确定所述目标接口在数据结构信息中所对应 的调用序号:
将所述接口调用请求包括的所请求调用的目标接口的相关信息与所述 数据结构信息进行匹配;
根据匹配结果确定所述目标接口对应的调用序号。
进一步的,所述接口调用方法还包括:
确定所述目标接口是否成功调用对应的系统服务;
如果确定所述目标接口成功调用对应的系统服务,则确定所述目标接 口的调用序号是否指示所述目标接口为完成所述目标业务的最后一个应被 调用的接口;
若否,则缓存所述目标接口已被成功调用的相关信息;
若是,则删除之前缓存的所述目标应用程序在请求完成目标业务的过 程中所产生的接口已被成功调用的相关信息。
进一步的,通过以下步骤确定所述目标接口是否成功调用对应的系统 服务:
确定通过所述目标接口调用对应的系统服务后,在预定时间内是否接 收到指示接口调用成功的反馈信息;
若否,则确定所述目标接口未成功调用对应的系统服务;
若是,则确定所述目标接口成功调用对应的系统服务。
进一步的,在获取在所述场景流水码下的上一个调用成功的接口的调 用序号之后,所述接口调用方法还包括:
确定所述目标接口对应的调用序号是否为所述上一个调用成功的接口 对应的调用序号;
若是,则通过所述目标接口对应的调用序号的下一个调用序号所对应 的接口调用对应的系统服务。
本申请实施例还提供了一种接口调用装置,所述接口调用装置包括:
获取模块,用于获取目标应用程序针对目标业务的接口调用请求;
第一确定模块,用于基于预存的权限相关数据和所述接口调用请求, 确定所述目标应用程序是否在所述目标业务的场景下有权限调用目标接口;
第二确定模块,用于如果所述目标应用程序在所述目标业务的场景下 有权限调用所述目标接口,则确定在所述目标业务的场景下与所述目标接 口对应的场景流水码;所述场景流水码为标识所述目标应用程序请求完成 一次所述目标业务的唯一编码;
第三确定模块,用于确定在所述场景流水码下所述目标接口是否满足 调用条件;
调用模块,用于若在所述场景流水码下所述目标接口满足调用条件, 则通过所述目标接口调用对应的系统服务。
进一步的,所述第三确定模块在用于确定在所述场景流水码下所述目 标接口是否满足调用条件时,所述第三确定模块用于:
在所述场景流水码下,确定是否存在与所述场景流水码对应的之前所 缓存的接口执行信息;所述接口执行信息包括在所述目标业务的场景下调 用接口的过程中所产生的相关信息;
若不存在所述接口执行信息,则确定在所述场景流水码下所述目标接 口满足调用条件;
若存在所述接口执行信息,则基于所述接口执行信息,获取在所述场 景流水码下的上一个调用成功的接口的调用序号,当所述目标接口对应的 调用序号为所述上一个调用成功的接口对应的调用序号的下一个调用序号 时,则确定所述目标接口满足调用条件。
进一步的,所述第二确定模块,在用于确定在所述目标业务的场景下 与所述目标接口对应的场景流水码时,所述第二确定模块用于:
确定所述接口调用请求是否包括场景流水码;
如果所述接口调用请求不包括场景流水码,则确定所述目标接口在数 据结构信息中所对应的调用序号;所述数据结构信息包括目标应用程序在 目标业务的场景下完成目标业务所调用的所有接口按调用顺序排列后得到 的顺序列表;
若所述调用序号指示所述目标接口为首个应被调用的接口,则向所述 目标应用程序发送指示产生与所述目标接口对应的场景流水码的通知消息, 并接收所述目标应用程序基于所述通知消息产生的与所述目标接口对应的 场景流水码;
如果所述接口调用请求包括场景流水码,则将该场景流水码确定为与 所述目标接口对应的场景流水码。
进一步的,所述第二确定模块用于通过以下步骤确定所述目标接口在 数据结构信息中所对应的调用序号:
将所述接口调用请求包括的所请求调用的目标接口的相关信息与所述 数据结构信息进行匹配;
根据匹配结果确定所述目标接口对应的调用序号。
进一步的,所述接口调用装置还包括:缓存模块;所述缓存模块用于:
确定所述目标接口是否成功调用对应的系统服务;
如果确定所述目标接口成功调用对应的系统服务,则确定所述目标接 口的调用序号是否指示所述目标接口为完成所述目标业务的最后一个应被 调用的接口;
若否,则缓存所述目标接口已被成功调用的相关信息;
若是,则删除之前缓存的所述目标应用程序在请求完成目标业务的过 程中所产生的接口已被成功调用的相关信息。
进一步的,所述缓存模块用于通过以下步骤确定所述目标接口是否成 功调用对应的系统服务:
确定通过所述目标接口调用对应的系统服务后,在预定时间内是否接 收到指示接口调用成功的反馈信息;
若否,则确定所述目标接口未成功调用对应的系统服务;
若是,则确定所述目标接口成功调用对应的系统服务。
进一步的,所述第三确定模块在获取在所述场景流水码下的上一个调 用成功的接口的调用序号之后,所述第三确定模块还用于:
确定所述目标接口对应的调用序号是否为所述上一个调用成功的接口 对应的调用序号;
若是,则通过所述目标接口对应的调用序号的下一个调用序号所对应 的接口调用对应的系统服务。
本申请实施例还提供一种电子设备,包括:处理器、存储器和总线, 所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时, 所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处 理器执行时执行如上述的接口调用方法的步骤。
本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介 质上存储有计算机程序,该计算机程序被处理器运行时执行如上述的接口 调用方法的步骤。
本申请实施例提供的应用程序的接口调用方法,获取目标应用程序针 对目标业务的接口调用请求;基于预存的权限相关数据和所述接口调用请 求,确定所述目标应用程序是否在所述目标业务的场景下有权限调用目标 接口;如果所述目标应用程序在所述目标业务的场景下有权限调用所述目 标接口,则确定在所述目标业务的场景下与所述目标接口对应的场景流水 码;确定在所述场景流水码下所述目标接口是否满足调用条件;若在所述 场景流水码下所述目标接口满足调用条件,则通过所述目标接口调用对应 的系统服务。
与现有技术中的仅能单独判定应用程序是否有权限调用一个应用程序 接口的方法相比,能够在确定应用程序有权调用目标接口后,确定目标接 口是否满足调用条件,从而确保应用程序能按照预先设定的关联关系调用 接口,避免引起在前置应用程序接口未成功调用的情况下就调用了后续的 应用程序接口而产生的“水平越权”事件。
为使本申请的上述目的、特征和优点能更明显易懂,下文特举较佳实 施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需 要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些 实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲, 在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本申请实施例所提供的一种应用程序的接口调用方法的流 程图之一;
图2示出了本申请实施例所提供的一种确定场景流水码的方法的流程 图;
图3示出了本申请实施例所提供的一种确定目标接口是否满足调用条 件的方法的流程图;
图4示出了本申请实施例所提供的一种应用程序的接口调用方法的流 程图之二;
图5示出了本申请实施例所提供的一种应用程序的接口调用装置的结 构示意图之一;
图6示出了本申请实施例所提供的一种应用程序的接口调用装置的结 构示意图之二;
图7示出了本申请实施例所提供的一种电子设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本 申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述, 显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。 通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配 置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描 述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实 施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前 提下所获得的每个其他实施例,都属于本申请保护的范围。
经研究发现,各业务系统提供的与业务场景对应的业务服务被拆分为 多个独立的微服务。现有技术中,只能鉴别应用程序是否有权限调用单独 的一个微服务对应的应用程序接口,但无法鉴别对不同应用程序接口的调 用之间是否存在关联关系,这就容易引起在前置应用程序接口未成功调用 的情况下就调用了后续的应用程序接口而产生的“水平越权”事件。
基于此,本申请实施例提供了一种应用程序的接口调用方法,以确保 在业务场景下的接口调用顺序符合预期,避免上述“水平越权”事件的发 生。
请参阅图1,图1为本申请实施例所提供的一种应用程序的接口调用方 法的流程图之一。如图1中所示,本申请实施例提供的接口调用方法,包 括:
S101、获取目标应用程序针对目标业务的接口调用请求。
需要说明的是,微服务架构下,目标应用程序在目标业务的场景下请 求完成的目标业务会被拆分成多个独立的微服务,每个微服务都对应了各 自的应用程序接口。目标应用程序为完成目标业务需要多次调用不同的接 口。但这些接口的调用之间往往存在关联关系,比如,只有在预定的前置 接口调用完成的情况下,才可以调用后置接口。
下面以目标应用程序为“手机银行”,目标业务为“建立银行账户”为 例进行说明。手机银行在建立一个银行账户时,需要按照顺序依次调用联 网核查、人脸识别、密码设置、客户信息创建和账户建立等多个接口。这 些接口分别与对应的系统连接,应用程序通过调用接口即可调用对应的系 统服务,得到系统服务反馈的结果。例如,联网核查接口连接了联网核查 公民身份信息系统,通过调用该系统的服务,可以验证手机银行在完成建 立银行账户的业务过程中所提供的居民身份证件的真实性。
该步骤中,获取目标应用程序针对目标业务的接口调用请求,其中, 接口调用请求包括所请求调用的目标接口的相关信息。示例性的,本申请 提供的接口调用方法可应用于网络互连设备,比如路由器、网关等。以网 关为例,通过在网关中完成目标应用程序在目标业务的场景下是否有权限 调用目标接口,以及目标接口是否满足调用条件等判定工作,并在判定通 过后,由网关通过目标接口调用对应的系统服务,减少了业务系统内部的 工作量。
S102、基于预存的权限相关数据和所述接口调用请求,确定所述目标 应用程序是否在所述目标业务的场景下有权限调用目标接口。
在一种可能的实施方式中,权限相关数据中可以包括应用程序标识、 业务场景标识以及业务场景下所包含接口的接口编码等数据。解析接口调 用请求,确定接口调用请求包括的所请求调用的目标接口的相关信息,例 如目标应用程序标识、目标业务的场景标识以及目标接口的接口编码等数 据。
对权限相关数据和从接口调用请求中解析出的数据进行匹配,若匹配 成功,则确定目标应用程序在所述目标业务的场景下有权限调用所述目标 接口;若匹配失败,可以向目标应用程序返回指示“无权调用该接口”的 响应报文。
S103、如果所述目标应用程序在所述目标业务的场景下有权限调用所 述目标接口,则确定在所述目标业务的场景下与所述目标接口对应的场景 流水码。
其中,所述场景流水码为标识所述目标应用程序请求完成一次所述目 标业务的唯一编码。
在一种可能的实施方式中,请参阅图2,图2为本申请实施例所提供的 一种确定场景流水码的方法的流程图。具体说来,步骤S103包括:
S1031、确定所述接口调用请求是否包括场景流水码。
这里,所述接口调用请求包括所请求调用的目标接口的相关信息;目 标接口的相关信息可包括以下项中的至少一项:场景编码、接口编码、接 口版本、接口名称、请求调用目标接口的目标应用程序的标识、场景流水 码。
S1032、如果所述接口调用请求不包括场景流水码,则确定所述目标接 口在数据结构信息中所对应的调用序号。
其中,所述数据结构信息包括目标应用程序在目标业务的场景下完成 目标业务所调用的所有接口按调用顺序排列后得到的顺序列表。
具体的,可预先通过将目标业务的场景下完成目标业务所需调用的接 口的相关信息进行持久化,以得到所述数据结构信息。例如,对应于S101 中的示例,在建立银行账户的场景下,完成建立银行账户的目标业务所需 调用的接口的数据结构信息表如下表1所示:
场景编码 接口名称 接口编码 接口版本 调用顺序
20201008 联网核查 acct.user.chec V1.0.0 1
20201008 人脸识别 acct.user.frs V1.3.2 2
20201008 密码设置 acct.user.pwd V2.0.1 3
20201008 客户信息创建 acct.user.create V1.2.3 4
20201008 账户建立 acct.acctinfo.create V1.0.2 5
表1数据结构信息表
其中,场景编码20201008用于指示业务场景,这是因为在实际应用中, 同一接口可能会被不同的业务调用,进而使得同一接口出现在不同的业务 场景中,而在不同业务场景中同一接口的调用顺序可能不同,因此数据结 构信息表中需要将接口信息和接口对应的场景信息一同存储;调用顺序一 列中的每个调用序号指示了在目标业务的场景下完成目标业务的过程中, 该调用序号对应接口的预定的调用顺序。示例性的,“联网核查”接口对应 的调用序号为1,该调用序号指示“联网核查”接口是在建立银行账户的业 务场景下首个应被调用的接口。
需要说明的是,上述数据结构信息表中的调用顺序仅是作为一种示例, 实际应用中,预先设定的调用顺序并不一定是成功调用了前置的一个接口, 即可调用后置的一个接口。例如,预先设定在“联网核查”接口调用成功 后,可以调用“人脸识别”接口和“指纹识别”接口;再例如,只有在“人 脸识别”接口和“指纹识别”接口都调用成功后,才可以调用“密码设置” 接口;又例如,“人脸识别”接口和“指纹识别”接口中的任一接口调用成 功或两个接口都调用成功后,可以调用“密码设置”接口等。也就是说, 具体的调用顺序可以根据实际业务需要预先设定或调整,本申请在此不做 任何限制。
在一种可能的实施方式中,通过以下步骤确定所述目标接口在数据结 构信息中所对应的调用序号:
步骤1、将所述接口调用请求包括的所请求调用的目标接口的相关信息 与所述数据结构信息进行匹配。
步骤2、根据匹配结果确定所述目标接口对应的调用序号。
这里,目标接口在数据结构信息中所对应的调用序号是指目标应用程 序在目标业务的场景下完成目标业务所调用的所有接口中,目标接口按调 用顺序排列后所处的调用序号。可选的,通过将目标接口的相关信息与数 据结构信息进行匹配,确定所述目标接口的调用序号。示例性的,目标接 口的相关信息中包括场景编码20201008、接口编码acct.user.frs和接口版本 V1.3.2,通过和上表1的匹配,确定目标接口的调用序号为2。
S1033、若所述调用序号指示所述目标接口为首个应被调用的接口,则 向所述目标应用程序发送指示产生与所述目标接口对应的场景流水码的通 知消息,并接收所述目标应用程序基于所述通知消息产生的与所述目标接 口对应的场景流水码。
该步骤中,若目标接口的调用序号为1,即指示目标接口为首个应被调 用的接口,则向目标应用程序发送指示产生与目标接口对应的场景流水码 的通知消息,并接收目标应用程序基于通知消息产生的与目标接口对应的 场景流水码。可选的,目标应用程序基于目标应用程序标识、目标接口对 应的目标业务的场景编码、日期、时间戳等信息生成所述场景流水码,以 使所述场景流水码能够作为标识所述目标应用程序请求完成一次所述目标 业务的唯一编码。
进一步的,所述调用序号指示所述目标接口不为首个应被调用的接口, 且在S1031中已经确定目标接口的相关信息中包括场景流水码,则说明目 标应用程序在没有成功调用前置接口的情况下,直接请求调用目标接口, 此时,可以向目标应用程序返回响应报文以指示目标应用程序对目标接口 的调用错误。
S1034、如果所述接口调用请求包括场景流水码,则将该场景流水码确 定为与所述目标接口对应的场景流水码。
请返回参照图1,步骤S104、确定在所述场景流水码下所述目标接口 是否满足调用条件。
在一种可能的实施方式中,请参阅图3,图3为本申请实施例所提供的 一种确定目标接口是否满足调用条件的方法的流程图。具体说来,步骤S104 包括:
S1041、在所述场景流水码下,确定是否存在与所述场景流水码对应的 之前所缓存的接口执行信息。
S1042、若不存在所述接口执行信息,则确定在所述场景流水码下所述 目标接口满足调用条件。
其中,所述接口执行信息包括在所述目标业务的场景下调用接口的过 程中所产生的相关信息。需要说明的是,在所述场景流水码下目标应用程 序在请求完成目标业务的过程中,若已成功调用了某一接口,则与所述场 景流水码对应的该接口已被成功调用的相关信息会被缓存下来。示例性的, 缓存的该接口已被成功调用的相关信息中包括该接口对应的场景流水码和 该接口的调用序号。
该步骤中,若确定缓存中不存在与所述场景流水码对应的之前所缓存 的在所述目标业务的场景下完成目标业务的接口执行信息,则说明在这一 场景流水码下,之前并未成功调用目标业务的场景下的任一接口,也就是 说,该目标接口实际上是所述目标业务的场景下首个应被调用的接口,因 此对这一目标接口的调用必然满足预先设定的调用顺序,可以直接确定在 所述场景流水码下所述目标接口满足调用条件。
S1043、若存在所述接口执行信息,则基于所述接口执行信息,获取在 所述场景流水码下的上一个调用成功的接口的调用序号。
S1044、当所述目标接口对应的调用序号为所述上一个调用成功的接口 对应的调用序号的下一个调用序号时,则确定所述目标接口满足调用条件。
该步骤中,若存在与所述场景流水码对应的之前所缓存的在所述目标 业务的场景下完成目标业务的接口执行信息,则说明之前已经成功调用了 目标业务的场景下的某一接口,此时需要进一步判断目标应用程序调用目 标接口的调用顺序是否正确,以避免出现根据预设的调用顺序,目标接口 的上一个接口未成功调用的情况下就调用该目标接口而产生了“水平越权” 事件。
具体的,当根据预定的调用顺序确定所述目标接口对应的调用序号为 所述上一个调用成功的接口对应的调用序号的下一个调用序号时,则确定 所述目标接口满足调用条件。例如,对应于上述示例,若从缓存中获取在 所述场景流水码下的上一个调用成功的接口对应的调用序号为3;通过将目 标接口的相关信息与预存的数据结构信息表1进行匹配,确定目标接口的 调用序号为4;再次查阅数据结构信息表1,确定调用序号4为调用序号3 的下一个序号,则确定目标接口满足调用条件。
当所述目标接口对应的调用序号不为所述上一个调用成功的接口对应 的调用序号的下一个调用序号时,则确定所述目标接口不满足调用条件, 此时,可以向目标应用程序返回响应报文以指示目标应用程序对目标接口 的调用错误。
在一种可能的实施方式中,S1043之后,所述接口调用方法还包括:
S1045、确定所述目标接口对应的调用序号是否为所述上一个调用成功 的接口对应的调用序号。
S1046、若是,则通过所述目标接口对应的调用序号的下一个调用序号 所对应的接口调用对应的系统服务。
该步骤中,如果目标接口对应的调用序号为上一个调用成功的接口对 应的调用序号,则说明目标应用程序重复调用了已经调用成功的接口,此 时,可以直接通过所述目标接口对应的调用序号的下一个调用序号所对应 的接口调用对应的系统服务。
对应于上述示例,在调用序号为2的“人脸识别”接口已被成功调用 的情况下,如果“手机银行”再次请求调用“人脸识别”接口,则此时, 请求调用“人脸识别”接口就是一个重复调用请求,可以跳过已成功调用 的“人脸识别”接口,通过下一个调用序号为3的“密码设置”接口调用 对应的系统服务。其中,每个接口是否可以跳过,跳过后是否需要重新确定目标应用程序在所述目标业务的场景下有权限调用下一个接口,以及只 有在接收到超过预定次数的重复调用请求时才可以跳过已成功调用的接口 等策略均可以根据实际业务需求进行配置。
这样,可以使得目标应用程序完成目标业务的效率更高,执行更顺畅。 此外,很多接口对应的系统服务是收费服务,则跳过已成功调用的接口并 自动调用下一接口,节约了完成目标业务的成本,避免了资源浪费。
进一步的,S1043之后,当目标接口对应的调用序号不为上一个调用成 功的接口对应的调用序号的下一个调用序号时,所述接口调用方法还可以 包括:
根据预定的调用顺序和上一个调用成功的接口对应的调用序号,确定 目标应用程序根据预定的调用顺序应当调用的接口所对应的调用序号;
通过应当调用的接口调用对应的系统服务。
下面请返回参阅图1,步骤S105、若在所述场景流水码下所述目标接 口满足调用条件,则通过所述目标接口调用对应的系统服务。
该步骤中,通过目标接口所调用的系统服务可以是内部系统提供的服 务,也可以是外部系统提供的服务。对应于上述示例,通过人脸识别接口 可以调用银行外部系统提供人脸识别的服务,通过密码设置接口可以调用 银行内部系统提供设置密码的服务。
下面请参阅图4,图4为本申请实施例所提供的一种应用程序的接口调 用方法的流程图之二。如图4中所示,本申请实施例提供的接口调用方法, 包括:
S201、获取目标应用程序针对目标业务的接口调用请求。
S202、基于预存的权限相关数据和所述接口调用请求,确定所述目标 应用程序是否在所述目标业务的场景下有权限调用目标接口。
S203、如果所述目标应用程序在所述目标业务的场景下有权限调用所 述目标接口,则确定在所述目标业务的场景下与所述目标接口对应的场景 流水码。
S204、确定在所述场景流水码下所述目标接口是否满足调用条件。
S205、若在所述场景流水码下所述目标接口满足调用条件,则通过所 述目标接口调用对应的系统服务。
其中,S201至S205的描述可以参照S101至S105的描述,并且能达 到相同的技术效果,对此不做赘述。
S206、确定所述目标接口是否成功调用对应的系统服务。
在一种可能的实施方式中,通过以下步骤确定所述目标接口是否成功 调用对应的系统服务:
步骤1、确定通过所述目标接口调用对应的系统服务后,在预定时间内 是否接收到指示接口调用成功的反馈信息。
步骤2、若否,则确定所述目标接口未成功调用对应的系统服务。
步骤3、若是,则确定所述目标接口成功调用对应的系统服务。
这里,通过目标接口调用对应的系统服务后,如果在预定时间内接收 到指示接口调用成功的反馈信息,则确定对目标接口的调用成功;如果在 预定时间内没有接收到指示接口调用成功的反馈信息,具体的,包括在预 定时间内没有接收到系统的反馈信息或在预定时间内接收到指示接口调用 失败的反馈信息,则确定对目标接口的调用失败。
进一步的,根据目标接口是否成功调用对应的系统服务的结果,分别 组装响应报文并反馈给目标应用程序,以及在日志中记录目标应用程序在 请求调用目标接口的过程中产生的相关信息。
S207、如果确定所述目标接口成功调用对应的系统服务,则确定所述 目标接口的调用序号是否指示所述目标接口为完成所述目标业务的最后一 个应被调用的接口。
S208、若否,则缓存所述目标接口已被成功调用的相关信息。
S209、若是,则删除之前缓存的所述目标应用程序在请求完成目标业 务的过程中所产生的接口已被成功调用的相关信息。
具体的,确定所述目标接口成功调用对应的系统服务后,进一步确定 所述目标接口的调用序号是否指示所述目标接口为完成所述目标业务的最 后一个应被调用的接口。
若是,则说明目标应用程序所请求调用的目标接口已经是目标业务的 场景下的最后一个接口。因此,实际上目标应用程序已经完成了场景流水 码所标识的场景对应的目标业务。此时,可以删除之前缓存的所述目标应 用程序在请求完成目标业务的过程中所产生的接口已被成功调用的相关信 息。示例性的,删除的相关信息包括场景流水码和调用成功的接口的调用 序号等。
若否,则说明目标应用程序所请求调用的目标接口并不是目标业务的 场景下的最后一个接口,按照预设的调用顺序,在目标业务的场景下后续 还有其他等待调用的接口。此时,需要缓存目标接口已被成功调用的相关 信息,示例性的,缓存的目标接口已被成功调用的相关信息中包括场景流 水码和目标接口的调用序号。这样,当目标应用程序发送下一个接口调用 请求时,可以获取在场景流水码下的上一个调用成功的接口的调用序号,即本次调用的目标接口的调用序号。
本申请实施例提供的应用程序的接口调用方法,获取目标应用程序针 对目标业务的接口调用请求;基于预存的权限相关数据和所述接口调用请 求,确定所述目标应用程序是否在所述目标业务的场景下有权限调用目标 接口;如果所述目标应用程序在所述目标业务的场景下有权限调用所述目 标接口,则确定在所述目标业务的场景下与所述目标接口对应的场景流水 码;确定在所述场景流水码下所述目标接口是否满足调用条件;若在所述 场景流水码下所述目标接口满足调用条件,则通过所述目标接口调用对应 的系统服务。
与现有技术中的仅能单独判定应用程序是否有权限调用一个应用程序 接口的方法相比,本申请提供的技术方案能够在确定应用程序有权调用目 标接口后,确定目标接口是否满足调用条件,从而确保应用程序能按照预 先设定的关联关系调用接口,避免引起在前置应用程序接口未成功调用的 情况下就调用了后续的应用程序接口而产生的“水平越权”事件。
请参阅图5、图6,图5为本申请实施例所提供的一种应用程序的接口 调用装置的结构示意图之一,图6为本申请实施例所提供的一种应用程序 的接口调用装置的结构示意图之二。如图5中所示,所述接口调用装置500 包括:
获取模块510,用于获取目标应用程序针对目标业务的接口调用请求;
第一确定模块520,用于基于预存的权限相关数据和所述接口调用请求, 确定所述目标应用程序是否在所述目标业务的场景下有权限调用目标接口;
第二确定模块530,用于如果所述目标应用程序在所述目标业务的场景 下有权限调用所述目标接口,则确定在所述目标业务的场景下与所述目标 接口对应的场景流水码;所述场景流水码为标识所述目标应用程序请求完 成一次所述目标业务的唯一编码;
第三确定模块540,用于确定在所述场景流水码下所述目标接口是否满 足调用条件;
调用模块550,用于若在所述场景流水码下所述目标接口满足调用条件, 则通过所述目标接口调用对应的系统服务。
进一步的,所述第三确定模块540,在用于确定在所述场景流水码下, 所述目标接口是否满足调用条件时,所述第三确定模块540用于:
在所述场景流水码下,确定是否存在与所述场景流水码对应的之前所 缓存的接口执行信息;所述接口执行信息包括在所述目标业务的场景下调 用接口的过程中所产生的相关信息;
若不存在所述接口执行信息,则确定在所述场景流水码下所述目标接 口满足调用条件;
若存在所述接口执行信息,则基于所述接口执行信息,获取在所述场 景流水码下的上一个调用成功的接口的调用序号,当所述目标接口对应的 调用序号为所述上一个调用成功的接口对应的调用序号的下一个调用序号 时,则确定所述目标接口满足调用条件。
进一步的,所述第二确定模块530,在用于确定在所述目标业务的场景 下与所述目标接口对应的场景流水码时,所述第二确定模块530用于:
确定所述接口调用请求是否包括场景流水码;
如果所述接口调用请求不包括场景流水码,则确定所述目标接口在数 据结构信息中所对应的调用序号;所述数据结构信息包括目标应用程序在 目标业务的场景下完成目标业务所调用的所有接口按调用顺序排列后得到 的顺序列表;
若所述调用序号指示所述目标接口为首个应被调用的接口,则向所述 目标应用程序发送指示产生与所述目标接口对应的场景流水码的通知消息, 并接收所述目标应用程序基于所述通知消息产生的与所述目标接口对应的 场景流水码;
如果所述接口调用请求包括场景流水码,则将该场景流水码确定为与 所述目标接口对应的场景流水码。
进一步的,所述第二确定模块530用于通过以下步骤确定所述目标接 口在数据结构信息中所对应的调用序号:
将所述接口调用请求包括的所请求调用的目标接口的相关信息与所述 数据结构信息进行匹配;
根据匹配结果确定所述目标接口对应的调用序号。
进一步的,如图6所示,所述接口调用装置还包括:缓存模块560;所 述缓存模块560用于:
确定所述目标接口是否成功调用对应的系统服务;
如果确定所述目标接口成功调用对应的系统服务,则确定所述目标接 口的调用序号是否指示所述目标接口为完成所述目标业务的最后一个应被 调用的接口;
若否,则缓存所述目标接口已被成功调用的相关信息;
若是,则删除之前缓存的所述目标应用程序在请求完成目标业务的过 程中所产生的接口已被成功调用的相关信息。
进一步的,所述缓存模块560用于通过以下步骤确定所述目标接口是 否成功调用对应的系统服务:
确定通过所述目标接口调用对应的系统服务后,在预定时间内是否接 收到指示接口调用成功的反馈信息;
若否,则确定所述目标接口未成功调用对应的系统服务;
若是,则确定所述目标接口成功调用对应的系统服务。
进一步的,所述第三确定模块540在获取在所述场景流水码下的上一 个调用成功的接口的调用序号之后,所述第三确定模块540还用于:
确定所述目标接口对应的调用序号是否为所述上一个调用成功的接口 对应的调用序号;
若是,则通过所述目标接口对应的调用序号的下一个调用序号所对应 的接口调用对应的系统服务。
请参阅图7,图7为本申请实施例所提供的一种电子设备的结构示意图。 如图7中所示,所述电子设备700包括处理器710、存储器720和总线730。
所述存储器720存储有所述处理器710可执行的机器可读指令,当电 子设备700运行时,所述处理器710与所述存储器720之间通过总线730 通信,所述机器可读指令被所述处理器710执行时,可以执行如上述图1 至图4所示方法实施例中的接口调用方法的步骤,具体实现方式可参见方 法实施例,在此不再赘述。
本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介 质上存储有计算机程序,该计算机程序被处理器运行时可以执行如上述图1 至以及图4所示方法实施例中的接口调用方法的步骤,具体实现方式可参 见方法实施例,在此不再赘述。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述 描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的 对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置 和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意 性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可 以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到 另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的 相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或 单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的, 作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地 方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的 部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元 中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在 一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使 用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。 基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的 部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软 件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可 以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述 方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读 存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述实施例,仅为本申请的具体实施方式,用 以说明本申请的技术方案,而非对其限制,本申请的保护范围并不局限于 此,尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术 人员应当理解:任何熟悉本技术领域的技术人员在本申请揭露的技术范围 内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变 化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本申请实施例技术方案的精神和范围,都 应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求 的保护范围为准。

Claims (10)

1.一种应用程序的接口调用方法,其特征在于,所述接口调用方法包括:
获取目标应用程序针对目标业务的接口调用请求;
基于预存的权限相关数据和所述接口调用请求,确定所述目标应用程序是否在所述目标业务的场景下有权限调用目标接口;
如果所述目标应用程序在所述目标业务的场景下有权限调用所述目标接口,则确定在所述目标业务的场景下与所述目标接口对应的场景流水码;所述场景流水码为标识所述目标应用程序请求完成一次所述目标业务的唯一编码;
确定在所述场景流水码下所述目标接口是否满足调用条件;
若在所述场景流水码下所述目标接口满足调用条件,则通过所述目标接口调用对应的系统服务。
2.根据权利要求1所述的接口调用方法,其特征在于,所述确定在所述场景流水码下所述目标接口是否满足调用条件,包括:
在所述场景流水码下,确定是否存在与所述场景流水码对应的之前所缓存的接口执行信息;所述接口执行信息包括在所述目标业务的场景下调用接口的过程中所产生的相关信息;
若不存在所述接口执行信息,则确定在所述场景流水码下所述目标接口满足调用条件;
若存在所述接口执行信息,则基于所述接口执行信息,获取在所述场景流水码下的上一个调用成功的接口的调用序号,当所述目标接口对应的调用序号为所述上一个调用成功的接口对应的调用序号的下一个调用序号时,则确定所述目标接口满足调用条件。
3.根据权利要求1所述的接口调用方法,其特征在于,所述确定在所述目标业务的场景下与所述目标接口对应的场景流水码,包括:
确定所述接口调用请求是否包括场景流水码;
如果所述接口调用请求不包括场景流水码,则确定所述目标接口在数据结构信息中所对应的调用序号;所述数据结构信息包括目标应用程序在目标业务的场景下完成目标业务所调用的所有接口按调用顺序排列后得到的顺序列表;
若所述调用序号指示所述目标接口为首个应被调用的接口,则向所述目标应用程序发送指示产生与所述目标接口对应的场景流水码的通知消息,并接收所述目标应用程序基于所述通知消息产生的与所述目标接口对应的场景流水码;
如果所述接口调用请求包括场景流水码,则将该场景流水码确定为与所述目标接口对应的场景流水码。
4.根据权利要求3所述的接口调用方法,其特征在于,通过以下步骤确定所述目标接口在数据结构信息中所对应的调用序号:
将所述接口调用请求包括的所请求调用的目标接口的相关信息与所述数据结构信息进行匹配;
根据匹配结果确定所述目标接口对应的调用序号。
5.根据权利要求1所述的接口调用方法,其特征在于,所述接口调用方法还包括:
确定所述目标接口是否成功调用对应的系统服务;
如果确定所述目标接口成功调用对应的系统服务,则确定所述目标接口的调用序号是否指示所述目标接口为完成所述目标业务的最后一个应被调用的接口;
若否,则缓存所述目标接口已被成功调用的相关信息;
若是,则删除之前缓存的所述目标应用程序在请求完成目标业务的过程中所产生的接口已被成功调用的相关信息。
6.根据权利要求5所述的接口调用方法,其特征在于,通过以下步骤确定所述目标接口是否成功调用对应的系统服务:
确定通过所述目标接口调用对应的系统服务后,在预定时间内是否接收到指示接口调用成功的反馈信息;
若否,则确定所述目标接口未成功调用对应的系统服务;
若是,则确定所述目标接口成功调用对应的系统服务。
7.根据权利要求2所述的接口调用方法,其特征在于,在获取在所述场景流水码下的上一个调用成功的接口的调用序号之后,所述接口调用方法还包括:
确定所述目标接口对应的调用序号是否为所述上一个调用成功的接口对应的调用序号;
若是,则通过所述目标接口对应的调用序号的下一个调用序号所对应的接口调用对应的系统服务。
8.一种应用程序的接口调用装置,其特征在于,所述接口调用装置包括:
获取模块,用于获取目标应用程序针对目标业务的接口调用请求;
第一确定模块,用于基于预存的权限相关数据和所述接口调用请求,确定所述目标应用程序是否在所述目标业务的场景下有权限调用目标接口;
第二确定模块,用于如果所述目标应用程序在所述目标业务的场景下有权限调用所述目标接口,则确定在所述目标业务的场景下与所述目标接口对应的场景流水码;所述场景流水码为标识所述目标应用程序请求完成一次所述目标业务的唯一编码;
第三确定模块,用于确定在所述场景流水码下所述目标接口是否满足调用条件;
调用模块,用于若在所述场景流水码下所述目标接口满足调用条件,则通过所述目标接口调用对应的系统服务。
9.一种电子设备,其特征在于,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过所述总线进行通信,所述机器可读指令被所述处理器运行时执行如权利要求1至7任一所述的接口调用方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如权利要求1至7任一所述的接口调用方法的步骤。
CN202111362153.7A 2021-11-17 2021-11-17 一种应用程序的接口调用方法、接口调用装置和电子设备 Pending CN114048049A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111362153.7A CN114048049A (zh) 2021-11-17 2021-11-17 一种应用程序的接口调用方法、接口调用装置和电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111362153.7A CN114048049A (zh) 2021-11-17 2021-11-17 一种应用程序的接口调用方法、接口调用装置和电子设备

Publications (1)

Publication Number Publication Date
CN114048049A true CN114048049A (zh) 2022-02-15

Family

ID=80209794

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111362153.7A Pending CN114048049A (zh) 2021-11-17 2021-11-17 一种应用程序的接口调用方法、接口调用装置和电子设备

Country Status (1)

Country Link
CN (1) CN114048049A (zh)

Similar Documents

Publication Publication Date Title
CN109492374B (zh) 基于身份验证的系统登录方法、装置、服务器及存储介质
CN111343142A (zh) 一种基于区块链网络的数据处理方法、装置及存储介质
CN109819023B (zh) 分布式事务处理方法及相关产品
CN114692195A (zh) 一种文档处理方法、装置、设备及存储介质
CN110895603A (zh) 多系统账号信息整合方法和装置
CN109034603B (zh) 业务流程执行方法、设备及计算机可读存储介质
CN113472774A (zh) 账号免登录方法、系统、设备及计算机可读存储介质
CN111817999A (zh) 用户登录的方法及装置
CN111552942A (zh) 身份认证方法、系统、装置及计算机存储介质
CN110750780B (zh) 基于多业务系统的用户角色权限融合方法、装置以及设备
CN110740163A (zh) 幂等性控制方法、装置、电子设备及可读存储介质
CN114092253A (zh) 一种区块链批次交易方法、装置、设备及可读存储介质
CN111274017B (zh) 一种资源的处理方法、装置、电子设备及存储介质
CN113010238A (zh) 一种微应用调用接口的权限确定方法、装置和系统
CN107220818B (zh) 网上支付方法及装置
CN114048049A (zh) 一种应用程序的接口调用方法、接口调用装置和电子设备
CN111341039B (zh) 一种吞卡处理方法和系统、客户端和服务端
CN110784551A (zh) 基于多租户的数据处理方法、装置、设备和介质
CN107704557B (zh) 操作互斥数据的处理方法、装置、计算机设备和存储介质
CN112837156A (zh) 固定执行顺序的交易方法和装置
CN112272211A (zh) 业务请求处理方法、装置及系统
CN111027051A (zh) 控制页面权限调用的方法、装置及可读存储介质
CN113452771B (zh) 一种接口调用方法、装置和系统
CN115102749B (zh) 一种资源交互方法、装置、设备及存储介质
CN117692556A (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