CN115022398A - 基于api开放平台的接口调用方法及装置、电子设备 - Google Patents

基于api开放平台的接口调用方法及装置、电子设备 Download PDF

Info

Publication number
CN115022398A
CN115022398A CN202210827788.8A CN202210827788A CN115022398A CN 115022398 A CN115022398 A CN 115022398A CN 202210827788 A CN202210827788 A CN 202210827788A CN 115022398 A CN115022398 A CN 115022398A
Authority
CN
China
Prior art keywords
service request
interface
server
preset
gray scale
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
CN202210827788.8A
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.)
Industrial and Commercial Bank of China Ltd ICBC
Original Assignee
Industrial and Commercial Bank of China Ltd ICBC
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 Industrial and Commercial Bank of China Ltd ICBC filed Critical Industrial and Commercial Bank of China Ltd ICBC
Priority to CN202210827788.8A priority Critical patent/CN115022398A/zh
Publication of CN115022398A publication Critical patent/CN115022398A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Computer And Data Communications (AREA)

Abstract

本发明公开了一种基于API开放平台的接口调用方法及装置、电子设备,涉及金融科技领域,其中,该方法包括:接收API开放平台转发的服务请求;在服务请求中携带有预设变量参数和/或预设客户信息的情况下,将服务请求转发至灰度服务器,以调用灰度服务器中的目标接口程序;在服务请求中未携带有预设变量参数和/或预设客户信息的情况下,将服务请求转发至正常服务器,以调用正常服务器中的目标接口程序。本发明解决了相关技术中通过API开放平台进行接口调用时,都是调用正式版本服务,直接面向生产环境,容易在出现问题时直接暴露给客户的技术问题。

Description

基于API开放平台的接口调用方法及装置、电子设备
技术领域
本发明涉及金融科技领域,具体而言,涉及一种基于API开放平台的接口调用方法及装置、电子设备。
背景技术
相关技术中,各个金融机构一般会包括总行和分支/分行,分支机构一般是通过API平台调用海外个人移动终端的接口服务,通过配置在API平台的接口地址链接将请求参数转发至海外个人终端转发器,终端转发器根据请求参数判断并转发至具体接口,实现接口的调用。图1是现有技术中一种可选的基于API开放平台的网络结构示意图,如图1所示,总行所在的内网与外网进行网络隔离,分行系统通过内网接入节点调用API服务,然后内网/专线接入节点将相应的请求服务转发至行内网关/小报文集群网关/大报文集群网关,之后,通过分布式服务框架转发至不同的主机应用/平台应用,同时平台应用可将请求通过上行网关发送至上行网关代理节点,然后发送至合作方系统中。其中,图1中的小程序对应了小程序代理节点,然后发送至内网中的小程序网关节点,进而转发至平台应用。通过图1的API开放平台,合作方系统可以根据接入的不同方式,可从外网接入节点、专线接入节点发起API调用;同时,API网关的行内网关群组负责处理分行发起的请求;小报文、大报文集群负责处理合作方系统发起的请求;异步交易处理结果通知通过上行网关,经过上行网关代理对外推送。
但是如图1所示的API开放网关存在明显的缺陷:通过API开放平台调用的接口服务都是调用的正式版本服务,直接面向生产环境,如出现问题会直接暴露给客户,存在一定风险。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种基于API开放平台的接口调用方法及装置、电子设备,以至少解决相关技术中通过API开放平台进行接口调用时,都是调用正式版本服务,直接面向生产环境,容易在出现问题时直接暴露给客户的技术问题。
根据本发明实施例的一个方面,提供了一种基于API开放平台的接口调用方法,应用于服务转发器,所述服务转发器与API开放平台预先建立连接关系,包括:接收所述API开放平台转发的服务请求;在所述服务请求中携带有预设变量参数和/或预设客户信息的情况下,将所述服务请求转发至灰度服务器,以调用所述灰度服务器中的目标接口程序;在所述服务请求中未携带有预设变量参数和/或预设客户信息的情况下,将所述服务请求转发至正常服务器,以调用所述正常服务器中的目标接口程序。
可选地,在所述服务请求中携带有预设变量参数和/或预设客户信息的情况下,将所述服务请求转发至灰度服务器的步骤,包括:获取所述服务请求中的动态变量开关;基于所述动态变量开关,判断是否启用请求转发灰度服务器的开关;在确认启用请求转发灰度服务器的开关的情况下,根据所述服务请求中携带的预设变量参数,将所述服务请求转发至所述灰度服务器。
可选地,根据所述服务请求中携带的预设变量参数,将所述服务请求转发至所述灰度服务器的步骤,包括:获取所述预设变量参数,其中,所述预设变量参数至少包括:待调用接口的标识;将所述待调用接口的标识与预先存储的动态变量参数中的接口标识集合进行匹配,得到第一匹配结果;在所述第一匹配结果指示所述待调用接口的标识能够与所述接口标识集合匹配成功的情况下,基于所述预设变量参数中的灰度标识字段,将所述服务请求转发至所述灰度服务器。
可选地,基于所述预设变量参数中的灰度标识字段,将所述服务请求转发至所述灰度服务器的步骤,包括:获取预先存储的灰度标识清单;将所述预设变量参数中的灰度标识字段与所述灰度标识清单进行匹配,得到第二匹配结果;在所述第二匹配结果指示所述预设变量参数中的灰度标识字段存在所述灰度标识清单中的情况下,访问与待调用接口关联的目标接口程序;调用所述灰度服务器中所述目标接口程序。
可选地,获取预先存储的灰度标识清单的步骤,包括:获取所述接口标识集合包含的多个匹配接口;获取预先存储的动态变量参数中与每个所述匹配接口对应的灰度标识字段名及其字段值,得到所述灰度标识清单。
可选地,访问与待调用接口关联的目标接口程序的步骤,包括:获取与待调用接口关联的关键字信息;提取所述服务请求中与所述关键字信息对应的请求参数值;将所述请求参数值与预先存储的动态变量参数中关联所述关键字信息的参数集合进行匹配,得到第三匹配结果;在所述第三匹配结果指示所述请求参数值存在所述参数集合的情况下,确认所述服务请求满足访问所述灰度服务器的要求;向所述服务请求增添用户身份标识Cookie,以访问与待调用接口关联的目标接口程序。
可选地,在所述服务请求中携带有预设变量参数和/或预设客户信息的情况下,将所述服务请求转发至灰度服务器的步骤,还包括:在所述服务请求中携带有预设客户信息的情况下,提取所述预设客户信息;基于所述预设客户信息,查询发送所述服务请求的目标客户是否为当前金融机构的白名单客户,得到查询结果;在所述查询结果指示所述目标客户为当前金融机构的白名单客户的情况下,在所述服务请求中携带有预设变量参数和/或预设客户信息的情况下,将所述服务请求转发至所述灰度服务器。
根据本发明实施例的另一方面,还提供了一种基于API开放平台的接口调用装置,应用于服务转发器,所述服务转发器与API开放平台预先建立连接关系,包括:接收单元,用于接收所述API开放平台转发的服务请求;第一转发单元,用于在所述服务请求中携带有预设变量参数和/或预设客户信息的情况下,将所述服务请求转发至灰度服务器,以调用所述灰度服务器中的目标接口程序;第二转发单元,用于在所述服务请求中未携带有预设变量参数和/或预设客户信息的情况下,将所述服务请求转发至正常服务器,以调用所述正常服务器中的目标接口程序。
可选地,所述第一转发单元包括:第一获取模块,用于获取所述服务请求中的动态变量开关;第一判断模块,用于基于所述动态变量开关,判断是否启用请求转发灰度服务器的开关;第一转发模块,用于在确认启用请求转发灰度服务器的开关的情况下,根据所述服务请求中携带的预设变量参数,将所述服务请求转发至所述灰度服务器。
可选地,所述第一转发模块包括:第一获取子模块,用于获取所述预设变量参数,其中,所述预设变量参数至少包括:待调用接口的标识;第一匹配子模块,用于将所述待调用接口的标识与预先存储的动态变量参数中的接口标识集合进行匹配,得到第一匹配结果;第一转发子模块,用于在所述第一匹配结果指示所述待调用接口的标识能够与所述接口标识集合匹配成功的情况下,基于所述预设变量参数中的灰度标识字段,将所述服务请求转发至所述灰度服务器。
可选地,所述第一转发子模块包括:第二获取子模块,用于获取预先存储的灰度标识清单;第二匹配子模块,用于将所述预设变量参数中的灰度标识字段与所述灰度标识清单进行匹配,得到第二匹配结果;访问子模块,用于在所述第二匹配结果指示所述预设变量参数中的灰度标识字段存在所述灰度标识清单中的情况下,访问与待调用接口关联的目标接口程序;第一调用子模块,用于调用所述灰度服务器中所述目标接口程序。
可选地,第二获取子模块包括:第三获取子模块,用于获取所述接口标识集合包含的多个匹配接口;第四获取子模块,用于获取预先存储的动态变量参数中与每个所述匹配接口对应的灰度标识字段名及其字段值,得到所述灰度标识清单。
可选地,访问子模块包括:第五获取子模块,用于获取与待调用接口关联的关键字信息;第一提取子模块,用于提取所述服务请求中与所述关键字信息对应的请求参数值;第三匹配子模块,用于将所述请求参数值与预先存储的动态变量参数中关联所述关键字信息的参数集合进行匹配,得到第三匹配结果;第一确认子模块,用于在所述第三匹配结果指示所述请求参数值存在所述参数集合的情况下,确认所述服务请求满足访问所述灰度服务器的要求;第一增添子模块,用于向所述服务请求增添用户身份标识Cookie,以访问与待调用接口关联的目标接口程序。
可选地,所述第一转发单元还包括:第一提取模块,用于在所述服务请求中携带有预设客户信息的情况下,提取所述预设客户信息;查询模块,用于基于所述预设客户信息,查询发送所述服务请求的目标客户是否为当前金融机构的白名单客户,得到查询结果;第二转发模块,用于在所述查询结果指示所述目标客户为当前金融机构的白名单客户的情况下,在所述服务请求中携带有预设变量参数和/或预设客户信息的情况下,将所述服务请求转发至所述灰度服务器。
根据本发明实施例的另一方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质用于存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行上述任意一项所述的基于API开放平台的接口调用方法。
根据本发明实施例的另一方面,还提供了一种电子设备,包括一个或多个处理器和存储器,所述存储器用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现上述任意一项所述的基于API开放平台的接口调用方法。
本发明中,先接收API开放平台转发的服务请求,在服务请求中携带有预设变量参数和/或预设客户信息的情况下,将服务请求转发至灰度服务器,以调用灰度服务器中的目标接口程序,在服务请求中未携带有预设变量参数和/或预设客户信息的情况下,将服务请求转发至正常服务器,以调用正常服务器中的目标接口程序。在本公开中,提供一个新的API服务转发器,对于通过API开放平台转发过来的服务请求,先通过该API服务转发器判断本次请求需要转发至正式版服务器还是灰度版服务器中的接口,再根据判断结果,将服务请求转发至对应的服务器,然后调用对应服务器中的接口程序,不仅服务请求转发安全性更高,而且提高容错率,能够有效的防止接口问题直接暴露给客户,从而解决相关技术中通过API开放平台进行接口调用时,都是调用正式版本服务,直接面向生产环境,容易在出现问题时直接暴露给客户的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是现有技术中一种可选的基于API开放平台的网络结构示意图;
图2是根据本发明实施例的一种可选的基于API开放平台的接口调用方法的流程图;
图3是根据本发明实施例的另一种可选的基于API开放平台的接口调用方法的流程图;
图4是根据本发明实施例的一种可选的基于API开放平台的接口调用装置的示意图;
图5是根据本发明实施例的一种基于API开放平台的接口调用方法的电子设备(或移动设备)的硬件结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
为便于本领域技术人员理解本发明,下面对各本发明各实施例涉及的部分术语或者名词做出解释:
应用程序接口,Application Programming Interface,简称API,是软件系统不同组成部分衔接的约定,采用统一的接口设计,以降低系统各部分的相互依赖,提高组成单元的内聚性,降低组成单元间的耦合程度,从而提高系统的维护性和扩展性。
API开放平台(F-APIP):是金融机构面向分行、合作方开放服务接口(API)的统一接入门户和管理平台。通过标准化设计对外提供服务,快速响应外部合作需求,通过总行、分行和合作方交互创新服务,建立起金融机构、合作方、用户的互利共赢生态圈。
Cookie,标识用户身份的信息,由用户客户端计算机暂时或永久保存的信息。
本发明中涉及的API开放平台的应用方(即服务消费者)至少包括:分行、合作方,其中,分行在调用总行系统接口均通过API平台;而合作方能够按照金融机构的标准、规范进行对接,既可经过调用金融机构的平台接口,共同为第三方客户提供服务,也可通过调用金融机构的API为自身系统服务。
本发明中,对于API开放平台,在向分行、合作方、用户提供服务时,预先设置服务纳入原则,该服务纳入原则可以包括但不限于:自主性强,可主导服务相应的技术标准和业务标准,或可以采用公认的标准;通用性高,即优先开放满足大多数合作方所需的普适性较强的服务,针对高端客户的需要,部分专用服务可纳入API平台。自助性好,开放服务后,合作方可便利地基于线上方式主动调用API开放平台的接口完成系统接入。
本发明中,为了避免平台接口直接暴露给客户,提供一个新的API服务转发器,分行通过API平台转发过来的请求先通过该API服务转发器判断本次请求需要转发至正式版服务器还是灰度版服务器中的接口。这样,分行可以通过请求参数来控制自己的请求是调用境外个人终端平台应用的灰度接口还是正常接口。
本发明中,对于接口的优化或改造,可以通过调用灰度接口实现。在生产环境进行业务体验,避免了改造点直接对客,降低了出现问题直接暴露给客户的风险,并可以使金融机构预先配置的白名单客户可以提前校验,在安全稳定后方可转发至正常服务器。
需要说明的是,本公开中的基于API开放平台的接口调用方法及其装置可用于金融科技领域在提供请求转发服务的情况下,也可用于除金融科技领域之外的任意领域在提供请求转发服务的情况下,本公开中对基于API开放平台的接口调用方法及其装置的应用领域不做限定。
需要说明的是,本公开所涉及的相关信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于展示的数据、分析的数据等),均为经用户授权或者经过各方充分授权的信息和数据。例如,本系统和相关用户或机构间设置有接口,在获取相关信息之前,需要通过接口向前述的用户或机构发送获取请求,并在接收到前述的用户或机构反馈的同意信息后,获取相关信息。
本发明下述各实施例可应用于各种提供接口服务的开放平台,尤其是对于各种内陆或者海外个人终端的接口服务,在接收到各个分行/合作方的服务请求后,可以根据请求参数判断是需要转发至正式版服务器还是灰度版服务器中的接口,能够有效的防止接口问题直接暴露给客户。
下面结合各个实施例来详细说明本发明。
实施例一
根据本发明实施例,提供了一种基于API开放平台的接口调用方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本发明实施例提供了一种基于API开放平台的接口调用方法,应用于服务转发器,服务转发器与API开放平台预先建立连接关系。本发明实施例通过设置一个新的服务转发器,分行通过API开放平台转发过来的请求先通过该API服务转发器判断本次请求需要转发至正式版服务器还是灰度版服务器中的接口。
图2是根据本发明实施例的一种可选的基于API开放平台的接口调用方法的流程图,如图2所示,该方法包括如下步骤:
步骤S201,接收API开放平台转发的服务请求;
步骤S202,在服务请求中携带有预设变量参数和/或预设客户信息的情况下,将服务请求转发至灰度服务器,以调用灰度服务器中的目标接口程序;
步骤S203,在服务请求中未携带有预设变量参数和/或预设客户信息的情况下,将服务请求转发至正常服务器,以调用正常服务器中的目标接口程序。
通过上述步骤,可以先接收API开放平台转发的服务请求,在服务请求中携带有预设变量参数和/或预设客户信息的情况下,将服务请求转发至灰度服务器,以调用灰度服务器中的目标接口程序,在服务请求中未携带有预设变量参数和/或预设客户信息的情况下,将服务请求转发至正常服务器,以调用正常服务器中的目标接口程序。在该实施例中,提供一个新的API服务转发器,对于通过API开放平台转发过来的服务请求,先通过该API服务转发器判断本次请求需要转发至正式版服务器还是灰度版服务器中的接口,再根据判断结果,将服务请求转发至对应的服务器,然后调用对应服务器中的接口程序,不仅服务请求转发安全性更高,而且提高容错率,能够有效的防止接口问题直接暴露给客户,从而解决相关技术中通过API开放平台进行接口调用时,都是调用正式版本服务,直接面向生产环境,容易在出现问题时直接暴露给客户的技术问题。
下面结合上述各实施步骤来详细说明本发明实施例。
步骤S201,接收API开放平台转发的服务请求。
本实施例中API开放平台可以是指部署于金融机构的总行内的平台,该平台与分行、各合作机构以及个人终端的应用连接。
需要说明的是,本实施例的服务请求可以是指执行主体为:分行、各合作机构发送的服务请求,该服务请求的类型包括但不限于:转账、贷款、基金交易、汇款等。服务请求内可以携带有变量参数和/或预设客户信息。
步骤S202,在服务请求中携带有预设变量参数和/或预设客户信息的情况下,将服务请求转发至灰度服务器,以调用灰度服务器中的目标接口程序。
可选的,在服务请求中携带有预设变量参数和/或预设客户信息的情况下,将服务请求转发至灰度服务器的步骤,包括:获取服务请求中的动态变量开关;基于动态变量开关,判断是否启用请求转发灰度服务器的开关;在确认启用请求转发灰度服务器的开关的情况下,根据服务请求中携带的预设变量参数,将服务请求转发至灰度服务器。
在本实施例中,服务转发器可以先获取CMC动态变量开关(本实施例可以定义APIGrayFlg),通过该开关确认是否启用请求转发灰度服务器;若否,则不启用,直接转发请求至正式版服务器,若是,则继续判断是否需要将请求转发至灰度服务器。
另一种可选的,根据服务请求中携带的预设变量参数,将服务请求转发至灰度服务器的步骤,包括:获取预设变量参数,其中,预设变量参数至少包括:待调用接口的标识;将待调用接口的标识与预先存储的动态变量参数中的接口标识集合进行匹配,得到第一匹配结果;在第一匹配结果指示待调用接口的标识能够与接口标识集合匹配成功的情况下,基于预设变量参数中的灰度标识字段,将服务请求转发至灰度服务器。
在本实施例中,服务转发器在通过变量开关判断需要将服务请求转发至灰度服务器后,可以获取CMC动态变量参数(本实施例可以定义为APIGrayOpNames,对应于上述的动态变量参数中的接口标识集合),该参数至少包括:需要请求灰度服务器的接口名称(可以通过数字标识或者文字标识或者符号标识,例如:接口1|接口2|接口3...接口N),动态变量参数中包含的接口是具有转发到灰度服务器需求的接口,获取请求参数中的接口名称字段(对应于上述的对应于上述的待调用接口的标识)与APIGrayOpNames进行比较(对应于上述的将待调用接口的标识与预先存储的动态变量参数中的接口标识集合进行匹配),如接口名称匹配上,则基于预设变量参数中的灰度标识字段,将服务请求转发至灰度服务器。
作为本发明可选的实施方式,基于预设变量参数中的灰度标识字段,将服务请求转发至灰度服务器的步骤,包括:获取预先存储的灰度标识清单;将预设变量参数中的灰度标识字段与灰度标识清单进行匹配,得到第二匹配结果;在第二匹配结果指示预设变量参数中的灰度标识字段存在灰度标识清单中的情况下,访问与待调用接口关联的目标接口程序;调用灰度服务器中目标接口程序。
可选的,获取预先存储的灰度标识清单的步骤,包括:获取接口标识集合包含的多个匹配接口;获取预先存储的动态变量参数中与每个匹配接口对应的灰度标识字段名及其字段值,得到灰度标识清单。
在本实施例中,服务转发器在通过动态变量参数判断接口标识匹配上,需要将服务请求转发至灰度服务器后,获取CMC动态变量参数中的灰度标识清单(本实施例可以定义为APIGrayNameValuePairs),该参数可以为json形式的各接口中对应的灰度标识字段名及其字段值,用以表明具有灰度机制的接口的请求中,哪个字段可以用作灰度标识,当灰度标识字段的值在该参数指定的值的清单(是指上述的灰度标识清单)中时,才可以访问灰度服务器中的接口程序。
作为本实施例一种可选的实施方式,访问与待调用接口关联的目标接口程序的步骤,包括:获取与待调用接口关联的关键字信息;提取服务请求中与关键字信息对应的请求参数值;将请求参数值与预先存储的动态变量参数中关联关键字信息的参数集合进行匹配,得到第三匹配结果;在第三匹配结果指示请求参数值存在参数集合的情况下,确认服务请求满足访问灰度服务器的要求;向服务请求增添用户身份标识Cookie,以访问与待调用接口关联的目标接口程序。
本实施例中,在访问与待调用接口关联的目标接口程序时,可以取出CMC参数本次请求调用的接口含有的key名(对应于上述的关键字信息),然后通过该key名去获取请求中这个key名对应的value值(对应于上述的请求参数值),若未获取到value值,则确认本次请求不包含灰度参数,直接将请求转发至正常服务器;若能获取到value值,则继续判断这个value值是否存在在CMC参数APIGrayNameValuePairs中涉及该key的value值集合(对应于上述的请求参数值对应的参数集合)中,若存在则说明符合进入灰度服务器的条件,通过给服务请求中添加Cookie来访问灰度服务器中的接口。
本实施例中,可以不通过上述的用变量参数来与服务请求中的参数进行比对,本实施例通过可以请求参数中包含的客户信息来判断是否将服务请求转发至灰度服务器。
另一种可选的,在服务请求中携带有预设变量参数和/或预设客户信息的情况下,将服务请求转发至灰度服务器的步骤,还包括:在服务请求中携带有预设客户信息的情况下,提取预设客户信息;基于预设客户信息,查询发送服务请求的目标客户是否为当前金融机构的白名单客户,得到查询结果;在查询结果指示目标客户为当前金融机构的白名单客户的情况下,在服务请求中携带有预设变量参数和/或预设客户信息的情况下,将服务请求转发至灰度服务器。
需要说明的是,服务转发器获取到客户信息参数(如客户名称、客户编号、客户等级、客户存款参数等)后,通过存储过程查询该客户是否在预先存储的白名单客户表中,若是,则直接将服务请求转发至灰度服务器,若不是,则转发至正常服务器。
由于通过数据库查询客户是否为白名单的方式,存在缺陷:无法实时进行变量参数的修改,时时生效,但是也有很好的优点:更安全稳定,且比cmc变量支持更大数据量的查询比对。因此,可以根据实际情况选取不同的服务请求转发判别方式,在需要接入灰度的接口数量较少时,可以使用变量参数判别的方式,若后续接口数量增大,可切换至查询数据库的白名单的方式,使用哪种方式也可通过CMC变量开关控制。
步骤S203,在服务请求中未携带有预设变量参数和/或预设客户信息的情况下,将服务请求转发至正常服务器,以调用正常服务器中的目标接口程序。
下面结合一种可选的具体实施方式来说明本发明实施例。
图3是根据本发明实施例的另一种可选的基于API开放平台的接口调用方法的流程图,如图3所示,
API服务转发器接收到API开放平台转发来的请求。
API服务转发器判断CMC开关APIGrayFlg是否打开。即API服务转发器在获取CMC动态变量开关APIGrayFlg后(该开关为是否启用请求转发灰度服务器开关),判断CMC开关APIGrayFlg是否打开,为否,则不启用,直接转发请求至正常服务器,为是,则继续判断是否需要将请求转发至灰度服务器。
API服务转发器获取CMC动态变量参数APIGrayOpNames。其中,该动态变量参数APIGrayOpNames包括:需要请求灰度服务器的接口名称,例如:接口1|接口2|接口3...,APIGrayOpNames中包含的接口是具有转发到灰度服务器需求的接口。
API服务转发器判断请求中的接口名称是否在APIGrayOpNames中。即将获取到的请求参数中的接口名称字段与APIGrayOpNames进行比较,如接口名称匹配上,则继续下面判断流程。
API服务转发器判断当前服务器是否是灰度服务器,若是,则直接转发请求至正常服务器,为否,则继续下面判断流程。
API服务转发器获取CMC动态变量参数APIGrayNameValuePairs,取出接口名对应的灰度参数名键值对。其中,该动态变量参数APIGrayNameValuePairs可以是json形式的各接口中对应的灰度标识字段名及其字段值,用以表明具有灰度机制的接口的请求中,哪个字段可以用作灰度标识,当灰度标识字段的值在该参数指定的值的清单中时,才可以访问灰度服务器中的接口程序。例如:
{
"接口名1":{
"key1":["value1","value2",...,"valueN"]
},
"接口名2":{
"key2":["value1","value2",...,"valueN"]
}
};
API服务转发器判断从请求中取出接口名对应的灰度标识变量名及其值,判断其值是否在参数APIGrayNameValuePairs指定的值里面。即API服务转发器在取出该CMC参数APIGrayNameValuePairs中本次请求调用的接口含有的key名后,用这个key名去获取请求中这个key名对应的value值,若未获取到value值,则说明本次请求不包含灰度参数,直接将请求转发至正常服务器。若能取到value值则继续判断这个value值是否存在在CMC参数APIGrayNameValuePairs中这个key的value值集合中,若存在,则说明符合进入灰度服务器的条件,通过给请求中添加Cookie来访问灰度服务器中的接口。
当然,本实施方式中,也可以不通过用CMC参数来与请求中的参数进行比对,本实施例可以进行数据库的客户白名单进行比对,通过请求参数中包含的客户信息,API服务转发器获取到客户信息参数后,通过存储过程查询该客户是否为金融机构的白名单客户,若是则将该请求转发至灰度服务器,若不是则转发至正常服务器。通过数据库查询不如使用CMC变量可以随时修改时时生效,优点为更安全稳定,且比cmc变量支持更大数据量的查询比对。需要接入灰度的接口数量少的时候可以使用CMC变量的方式,若后续接口数量增大,可切换至查询数据库的方式。使用哪种方式也可通过cmc变量开关控制。
通过上述实施例,可以通过设置一个新的服务转发器,通过该服务转发器对分行通过API开放平台转发的服务请求进行判断,确认本次转发的服务请求需要转发至正式版服务器还是灰度版服务器中的接口,能够有效的防止接口问题直接暴露给客户。
下面结合另一种可选的实施例来说明本发明。
实施例二
本实施例提供了一种基于API开放平台的接口调用装置,该接口调用装置中包含有多个实施单元,每个实施单元对应于上述实施例一中的各个实施步骤。
本发明实施例提供的基于API开放平台的接口调用装置,可应用于服务转发器,服务转发器与API开放平台预先建立连接关系。
图4是根据本发明实施例的一种可选的基于API开放平台的接口调用装置的示意图,如图4所示,该接口调用装置可以包括:接收单元41、第一转发单元42、第二转发单元43,其中,
接收单元41,用于接收API开放平台转发的服务请求;
第一转发单元42,用于在服务请求中携带有预设变量参数和/或预设客户信息的情况下,将服务请求转发至灰度服务器,以调用灰度服务器中的目标接口程序;
第二转发单元43,用于在服务请求中未携带有预设变量参数和/或预设客户信息的情况下,将服务请求转发至正常服务器,以调用正常服务器中的目标接口程序。
上述基于API开放平台的接口调用装置,可以先通过接收单元41接收API开放平台转发的服务请求,通过第一转发单元42在服务请求中携带有预设变量参数和/或预设客户信息的情况下,将服务请求转发至灰度服务器,以调用灰度服务器中的目标接口程序,通过第二转发单元43在服务请求中未携带有预设变量参数和/或预设客户信息的情况下,将服务请求转发至正常服务器,以调用正常服务器中的目标接口程序。在该实施例中,提供一个新的API服务转发器,对于通过API开放平台转发过来的服务请求,先通过该API服务转发器判断本次请求需要转发至正式版服务器还是灰度版服务器中的接口,再根据判断结果,将服务请求转发至对应的服务器,然后调用对应服务器中的接口程序,不仅服务请求转发安全性更高,而且提高容错率,能够有效的防止接口问题直接暴露给客户,从而解决相关技术中通过API开放平台进行接口调用时,都是调用正式版本服务,直接面向生产环境,容易在出现问题时直接暴露给客户的技术问题。
可选的,第一转发单元包括:第一获取模块,用于获取服务请求中的动态变量开关;第一判断模块,用于基于动态变量开关,判断是否启用请求转发灰度服务器的开关;第一转发模块,用于在确认启用请求转发灰度服务器的开关的情况下,根据服务请求中携带的预设变量参数,将服务请求转发至灰度服务器。
可选的,第一转发模块包括:第一获取子模块,用于获取预设变量参数,其中,预设变量参数至少包括:待调用接口的标识;第一匹配子模块,用于将待调用接口的标识与预先存储的动态变量参数中的接口标识集合进行匹配,得到第一匹配结果;第一转发子模块,用于在第一匹配结果指示待调用接口的标识能够与接口标识集合匹配成功的情况下,基于预设变量参数中的灰度标识字段,将服务请求转发至灰度服务器。
可选的,第一转发子模块包括:第二获取子模块,用于获取预先存储的灰度标识清单;第二匹配子模块,用于将预设变量参数中的灰度标识字段与灰度标识清单进行匹配,得到第二匹配结果;访问子模块,用于在第二匹配结果指示预设变量参数中的灰度标识字段存在灰度标识清单中的情况下,访问与待调用接口关联的目标接口程序;第一调用子模块,用于调用灰度服务器中目标接口程序。
可选的,第二获取子模块包括:第三获取子模块,用于获取接口标识集合包含的多个匹配接口;第四获取子模块,用于获取预先存储的动态变量参数中与每个匹配接口对应的灰度标识字段名及其字段值,得到灰度标识清单。
可选的,访问子模块包括:第五获取子模块,用于获取与待调用接口关联的关键字信息;第一提取子模块,用于提取服务请求中与关键字信息对应的请求参数值;第三匹配子模块,用于将请求参数值与预先存储的动态变量参数中关联关键字信息的参数集合进行匹配,得到第三匹配结果;第一确认子模块,用于在第三匹配结果指示请求参数值存在参数集合的情况下,确认服务请求满足访问灰度服务器的要求;第一增添子模块,用于向服务请求增添用户身份标识Cookie,以访问与待调用接口关联的目标接口程序。
可选的,第一转发单元还包括:第一提取模块,用于在服务请求中携带有预设客户信息的情况下,提取预设客户信息;查询模块,用于基于预设客户信息,查询发送服务请求的目标客户是否为当前金融机构的白名单客户,得到查询结果;第二转发模块,用于在查询结果指示目标客户为当前金融机构的白名单客户的情况下,在服务请求中携带有预设变量参数和/或预设客户信息的情况下,将服务请求转发至灰度服务器。
上述的基于API开放平台的接口调用装置还可以包括处理器和存储器,上述接收单元41、第一转发单元42、第二转发单元43等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
上述处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来在服务请求中携带有预设变量参数和/或预设客户信息的情况下,将服务请求转发至灰度服务器,以调用灰度服务器中的目标接口程序。
上述存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。
根据本发明实施例的另一方面,还提供了一种计算机可读存储介质,计算机可读存储介质用于存储的计算机程序,其中,在计算机程序运行时控制计算机可读存储介质所在设备执行上述任意一项的基于API开放平台的接口调用方法。
根据本发明实施例的另一方面,还提供了一种电子设备,包括一个或多个处理器和存储器,存储器用于存储一个或多个程序,其中,当一个或多个程序被一个或多个处理器执行时,使得一个或多个处理器实现上述任意一项的基于API开放平台的接口调用方法。
本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序:接收API开放平台转发的服务请求;在服务请求中携带有预设变量参数和/或预设客户信息的情况下,将服务请求转发至灰度服务器,以调用灰度服务器中的目标接口程序;在服务请求中未携带有预设变量参数和/或预设客户信息的情况下,将服务请求转发至正常服务器,以调用正常服务器中的目标接口程序。
图5是根据本发明实施例的一种基于API开放平台的接口调用方法的电子设备(或移动设备)的硬件结构框图。如图5所示,电子设备可以包括一个或多个(图中采用502a、502b,……,502n来示出)处理器502(处理器502可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器504。除此以外,还可以包括:显示器、输入/输出接口(I/O接口)、通用串行总线(USB)端口(可以作为I/O接口的端口中的一个端口被包括)、网络接口、键盘、电源和/或相机。本领域普通技术人员可以理解,图5所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,电子设备还可包括比图5中所示更多或者更少的组件,或者具有与图5所示不同的配置。上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (10)

1.一种基于API开放平台的接口调用方法,其特征在于,应用于服务转发器,所述服务转发器与API开放平台预先建立连接关系,包括:
接收所述API开放平台转发的服务请求;
在所述服务请求中携带有预设变量参数和/或预设客户信息的情况下,将所述服务请求转发至灰度服务器,以调用所述灰度服务器中的目标接口程序;
在所述服务请求中未携带有所述预设变量参数和/或所述预设客户信息的情况下,将所述服务请求转发至正常服务器,以调用所述正常服务器中的目标接口程序。
2.根据权利要求1所述的接口调用方法,其特征在于,在所述服务请求中携带有预设变量参数和/或预设客户信息的情况下,将所述服务请求转发至灰度服务器的步骤,包括:
获取所述服务请求中的动态变量开关;
基于所述动态变量开关,判断是否启用请求转发所述灰度服务器的开关;
在确认启用请求转发所述灰度服务器的开关的情况下,根据所述服务请求中携带的预设变量参数,将所述服务请求转发至所述灰度服务器。
3.根据权利要求2所述的接口调用方法,其特征在于,根据所述服务请求中携带的预设变量参数,将所述服务请求转发至所述灰度服务器的步骤,包括:
获取所述预设变量参数,其中,所述预设变量参数至少包括:待调用接口的标识;
将所述待调用接口的标识与预先存储的动态变量参数中的接口标识集合进行匹配,得到第一匹配结果;
在所述第一匹配结果指示所述待调用接口的标识能够与所述接口标识集合匹配成功的情况下,基于所述预设变量参数中的灰度标识字段,将所述服务请求转发至所述灰度服务器。
4.根据权利要求3所述的接口调用方法,其特征在于,基于所述预设变量参数中的灰度标识字段,将所述服务请求转发至所述灰度服务器的步骤,包括:
获取预先存储的灰度标识清单;
将所述预设变量参数中的灰度标识字段与所述灰度标识清单进行匹配,得到第二匹配结果;
在所述第二匹配结果指示所述预设变量参数中的灰度标识字段存在所述灰度标识清单中的情况下,访问与待调用接口关联的目标接口程序;
调用所述灰度服务器中所述目标接口程序。
5.根据权利要求4所述的接口调用方法,其特征在于,获取预先存储的灰度标识清单的步骤,包括:
获取所述接口标识集合包含的多个匹配接口;
获取预先存储的动态变量参数中与每个所述匹配接口对应的灰度标识字段名及其字段值,得到所述灰度标识清单。
6.根据权利要求4所述的接口调用方法,其特征在于,访问与待调用接口关联的目标接口程序的步骤,包括:
获取与待调用接口关联的关键字信息;
提取所述服务请求中与所述关键字信息对应的请求参数值;
将所述请求参数值与预先存储的动态变量参数中关联所述关键字信息的参数集合进行匹配,得到第三匹配结果;
在所述第三匹配结果指示所述请求参数值存在所述参数集合的情况下,确认所述服务请求满足访问所述灰度服务器的要求;
向所述服务请求增添用户身份标识Cookie,以访问与待调用接口关联的目标接口程序。
7.根据权利要求1所述的接口调用方法,其特征在于,在所述服务请求中携带有预设变量参数和/或预设客户信息的情况下,将所述服务请求转发至灰度服务器的步骤,还包括:
在所述服务请求中携带有所述预设客户信息的情况下,提取所述预设客户信息;
基于所述预设客户信息,查询发送所述服务请求的目标客户是否为当前金融机构的白名单客户,得到查询结果;
在所述查询结果指示所述目标客户为当前金融机构的白名单客户的情况下,在所述服务请求中携带有所述预设变量参数和/或所述预设客户信息的情况下,将所述服务请求转发至所述灰度服务器。
8.一种基于API开放平台的接口调用装置,其特征在于,应用于服务转发器,所述服务转发器与API开放平台预先建立连接关系,包括:
接收单元,用于接收所述API开放平台转发的服务请求;
第一转发单元,用于在所述服务请求中携带有预设变量参数和/或预设客户信息的情况下,将所述服务请求转发至灰度服务器,以调用所述灰度服务器中的目标接口程序;
第二转发单元,用于在所述服务请求中未携带有所述预设变量参数和/或所述预设客户信息的情况下,将所述服务请求转发至正常服务器,以调用所述正常服务器中的目标接口程序。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质用于存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行权利要求1至7中任意一项所述的基于API开放平台的接口调用方法。
10.一种电子设备,其特征在于,包括一个或多个处理器和存储器,所述存储器用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现权利要求1至7中任意一项所述的基于API开放平台的接口调用方法。
CN202210827788.8A 2022-07-14 2022-07-14 基于api开放平台的接口调用方法及装置、电子设备 Pending CN115022398A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210827788.8A CN115022398A (zh) 2022-07-14 2022-07-14 基于api开放平台的接口调用方法及装置、电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210827788.8A CN115022398A (zh) 2022-07-14 2022-07-14 基于api开放平台的接口调用方法及装置、电子设备

Publications (1)

Publication Number Publication Date
CN115022398A true CN115022398A (zh) 2022-09-06

Family

ID=83080557

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210827788.8A Pending CN115022398A (zh) 2022-07-14 2022-07-14 基于api开放平台的接口调用方法及装置、电子设备

Country Status (1)

Country Link
CN (1) CN115022398A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115455103A (zh) * 2022-10-20 2022-12-09 广州明动软件股份有限公司 基于动态化接口引擎的动态查询系统及方法
CN116954942A (zh) * 2023-06-29 2023-10-27 广州汽车集团股份有限公司 接口调用方法、装置、车辆及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105791341A (zh) * 2014-12-22 2016-07-20 华为软件技术有限公司 一种应用发布的处理方法、装置及系统
CN108319468A (zh) * 2017-01-16 2018-07-24 北京京东尚科信息技术有限公司 灰度发布方法、装置、系统及电子设备
CN110543317A (zh) * 2019-08-29 2019-12-06 上海艾融软件股份有限公司 交易请求处理方法、装置、网关及存储介质
CN112073320A (zh) * 2020-11-12 2020-12-11 深圳壹账通智能科技有限公司 基于云网关的api灰度发布方法、装置及计算机设备
CN113703808A (zh) * 2021-08-30 2021-11-26 康键信息技术(深圳)有限公司 组件化的灰度发布方法、装置、设备及存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105791341A (zh) * 2014-12-22 2016-07-20 华为软件技术有限公司 一种应用发布的处理方法、装置及系统
CN108319468A (zh) * 2017-01-16 2018-07-24 北京京东尚科信息技术有限公司 灰度发布方法、装置、系统及电子设备
CN110543317A (zh) * 2019-08-29 2019-12-06 上海艾融软件股份有限公司 交易请求处理方法、装置、网关及存储介质
CN112073320A (zh) * 2020-11-12 2020-12-11 深圳壹账通智能科技有限公司 基于云网关的api灰度发布方法、装置及计算机设备
CN113703808A (zh) * 2021-08-30 2021-11-26 康键信息技术(深圳)有限公司 组件化的灰度发布方法、装置、设备及存储介质

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115455103A (zh) * 2022-10-20 2022-12-09 广州明动软件股份有限公司 基于动态化接口引擎的动态查询系统及方法
CN116954942A (zh) * 2023-06-29 2023-10-27 广州汽车集团股份有限公司 接口调用方法、装置、车辆及存储介质
CN116954942B (zh) * 2023-06-29 2024-06-11 广州汽车集团股份有限公司 接口调用方法、装置、车辆及存储介质

Similar Documents

Publication Publication Date Title
CN115022398A (zh) 基于api开放平台的接口调用方法及装置、电子设备
US10447856B2 (en) Computer-implemented system and method for facilitating interactions via automatic agent responses
CN106878309B (zh) 应用于网络支付的安全预警方法及装置
US11171892B2 (en) Service assistance and integration
CN107294908B (zh) 即时通信应用中的账号信息处理方法、装置及系统
CN107018504B (zh) 通信方法、黑名单配置方法及装置
CN112163946A (zh) 基于分布式交易系统的账务处理方法及装置
US20150186890A1 (en) Method, Device And System For Data Processing
WO2015101014A1 (en) Method, device and system for data processing
CN112202744B (zh) 一种多系统数据通信方法和装置
CN108230089A (zh) 一种在线订单处理方法、系统及装置
CN113781202A (zh) 数据处理方法、装置、计算机设备和存储介质
CN106921557B (zh) 一种邮件发送方法和设备
CN110750780A (zh) 基于多业务系统的用户角色权限融合方法、装置以及设备
CN112929257B (zh) 多场景消息发送方法、装置、服务器以及存储介质
CN114629867A (zh) 在线问诊即时通讯系统和消息处理方法
US20090175437A1 (en) Call transfer between differing equipment
CN109101645B (zh) 语音通话转接方法、装置、计算机设备及存储介质
CN116739524A (zh) 业务流程设置方法、装置、设备、存储介质及程序产品
US20220004403A1 (en) Methods of providing an integrated interface that includes a virtual mobile device
CN112866268A (zh) 报文处理方法及系统
CN112182450A (zh) 一种银行系统页面集成的方法、系统及存储介质
CN105407029A (zh) 一种账号分流方法及通信终端
CN118101838B (zh) 一种第三方服务协议代答实现方法、终端设备及存储介质
CN113707346B (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