本发明涉及通信技术领域,尤其涉及一种接口调用方法及装置。
背景技术:
目前,在接口调用的过程中,仅通过接口调用日志简单记录了接口调用结果,导致在接口提供方无响应或者超时的情况下,容易拖垮整个业务线的接口请求。
技术实现要素:
技术问题
有鉴于此,本发明要解决的技术问题是,接口调用技术的可靠性较差。
解决方案
为了解决上述技术问题,根据本发明的一实施例,提供了一种接口调用方法,包括:
在接收到接口调用方申请调用服务的请求的情况下,向所述接口调用方发送与所述服务相关的配置参数,以使所述接口调用方根据与所述服务相关的配置参数发起访问请求;
在接收到所述接口调用方根据与所述服务相关的配置参数发起的访问请求的情况下,对所述访问请求进行验证;
在所述访问请求验证通过的情况下,获取所述服务对应的接口提供方的节点信息,根据所述节点信息向所述接口提供方发起调用所述服务的请求,并向所述接口提供方发送所述接口调用方的相关参数;
在所述访问请求验证不通过的情况下,向所述接口调用方进行反馈。
为了解决上述技术问题,根据本发明的另一实施例,提供了一种接口调用方法,包括:
向接口代理方发送申请调用服务的请求;
接收所述接口代理方返回的与所述服务相关的配置参数;
根据与所述服务相关的配置参数向所述接口代理方发起访问请求,以使所述接口代理方对所述访问请求进行验证;
在所述访问请求验证不通过的情况下,接收所述接口代理方返回的反馈信息。
为了解决上述技术问题,根据本发明的另一实施例,提供了一种接口调用装置,包括:
配置参数发送模块,用于在接收到接口调用方申请调用服务的请求的情况下,向所述接口调用方发送与所述服务相关的配置参数,以使所述接口调用方根据与所述服务相关的配置参数发起访问请求;
验证模块,用于在接收到所述接口调用方根据与所述服务相关的配置参数发起的访问请求的情况下,对所述访问请求进行验证;
调用模块,用于在所述访问请求验证通过的情况下,获取所述服务对应的接口提供方的节点信息,根据所述节点信息向所述接口提供方发起调用所述服务的请求,并向所述接口提供方发送所述接口调用方的相关参数;
反馈模块,用于在所述访问请求验证不通过的情况下,向所述接口调用方进行反馈。
为了解决上述技术问题,根据本发明的另一实施例,提供了一种接口调用装置,包括:
调用请求发送模块,用于向接口代理方发送申请调用服务的请求;
配置参数接收模块,用于接收所述接口代理方返回的与所述服务相关的配置参数;
访问请求发起模块,用于根据与所述服务相关的配置参数向所述接口代理方发起访问请求,以使所述接口代理方对所述访问请求进行验证;
反馈信息接收模块,用于在所述访问请求验证不通过的情况下,接收所述接口代理方返回的反馈信息。
有益效果
通过在接口调用方申请调用服务的情况下,接口代理方向接口调用方发送与服务相关配置参数,接口调用方根据与服务相关的配置参数发起访问请求,接口代理方对该访问请求进行验证,并在验证不通过的情况下反馈接口调用方,根据本发明实施例的接口调用方法及装置能够通过接口代理方对接口调用过程进行监控、分析,在服务调用失败的情况下及时通知接口调用方,并能及时发现出现问题的接口,从而能够提高接口调用的可靠性。
根据下面参考附图对示例性实施例的详细说明,本发明的其它特征及方面将变得清楚。
附图说明
包含在说明书中并且构成说明书的一部分的附图与说明书一起示出了本发明的示例性实施例、特征和方面,并且用于解释本发明的原理。
图1示出根据本发明一实施例的接口调用方法的实现流程图;
图2示出根据本发明实施例的接口调用方法步骤S11中向所述接口调用方发送与所述服务相关的配置参数的一示例性的实现流程图;
图3示出根据本发明另一实施例的接口调用方法的实现流程图;
图4示出根据本发明实施例的接口调用方法步骤S32的一示例性的实现流程图;
图5示出根据本发明另一实施例的接口调用装置的结构框图;
图6示出根据本发明实施例的接口调用装置的一示例性的结构框图;
图7示出根据本发明另一实施例的接口调用装置的结构框图;
图8示出根据本发明实施例的接口调用装置的一示例性的结构框图;
图9示出根据本发明另一实施例的接口调用系统的系统架构图;
图10示出了本发明的另一个实施例的一种接口调用设备的结构框图。
具体实施方式
以下将参考附图详细说明本发明的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。
在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。
另外,为了更好的说明本发明,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本发明同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本发明的主旨。
实施例1
图1示出根据本发明一实施例的接口调用方法的实现流程图。本实施例的执行主体可以为接口代理方,该接口代理方可以为具备计算能力的主机服务器,在此不作限定。如图1所示,该方法主要包括:
在步骤S11中,在接收到接口调用方申请调用服务的请求的情况下,向接口调用方发送与该服务相关的配置参数,以使接口调用方根据与该服务相关的配置参数发起访问请求。
在本实施例中,接口调用方可以向接口代理方申请调用服务,接口代理方在接收到接口调用方申请调用服务的请求的情况下,向接口调用方发送与该服务相关的配置参数。其中,该服务可以为应用服务,该服务对应的接口可以为应用服务接口,在此不作限定。
在步骤S12中,在接收到接口调用方根据与该服务相关的配置参数发起的访问请求的情况下,对访问请求进行验证。
在本实施例中,接口调用方在接收到与该服务相关的配置参数之后,接口调用方可以根据与该服务相关的配置参数发起的访问请求。接口代理方在接收到接口调用方根据与该服务相关的配置参数发起的访问请求的情况下,对访问请求进行验证。
作为本实施例的一个示例,可以结合ELK(ElasticSearch,Logstash,Kibana)对访问请求进行验证。其中,ElasticSearch是基于Lucene的搜索服务器;Logstash是一种日志搜索处理框架;Kibana是为Logstash和ElasticSearch提供的日志分析的Web(网页)接口。
在步骤S13中,在访问请求验证通过的情况下,获取该服务对应的接口提供方的节点信息,根据节点信息向接口提供方发起调用该服务的请求,并向接口提供方发送接口调用方的相关参数。
其中,接口提供方的节点信息可以包括接口提供方的IP(Internet Protocol,互联网协议)地址和该服务对应的接口名称等,在此不作限定。
在步骤S14中,在访问请求验证不通过的情况下,向接口调用方进行反馈。
在本实施例中,在访问请求验证不通过的情况下,接口代理方向接口调用方进行反馈,由此使接口调用方能够及时获取服务调用失败的信息,从而使接口调用方能够及时尝试调用其他服务。
根据本发明上述实施例的接口调用方法能够对接口调用过程进行监控、分析,在服务调用失败的情况下及时通知接口调用方,并能及时发现出现问题的接口,从而能够提高接口调用的可靠性。
图2示出根据本发明实施例的接口调用方法步骤S11中向接口调用方发送与该服务相关的配置参数的一示例性的实现流程图。如图2所示,向接口调用方发送与该服务相关的配置参数,包括:
在步骤S21中,为接口调用方分配以及唯一标识符以及该服务对应的密钥。
作为本实施例的一个示例,接口代理方为每个接口调用方分配唯一标识符以及该服务对应的密钥。其中,唯一标识符可以用于唯一标识接口调用方,密钥可以用于签名验证。
在步骤S22中,向接口调用方发送该服务的规范参数。
其中,该服务的规范参数可以包括以下至少一项:接口调用方的PID(Port Identification,端口标识符)、接口调用方对应的用户ID、接口调用方的密钥和接口调用方请求调用的服务ID。
在本示例中,通过向接口调用方分配唯一标识符,能够实现对接口调用方的区分,从而在接口提供方的接口访问量较大的情况下,能够根据唯一标识符对接口调用方进行访问限制,例如可以拆分出合理访问与受限访问。
在一种可能的实现方式中,向接口提供方发送接口调用方的相关参数,包括:向接口提供方发送接口调用方对应的规范参数的值。例如,在该服务的规范参数包括接口调用方的PID、接口调用方对应的用户ID、接口调用方的密钥和接口调用方请求调用的服务ID的情况下,接口代理方可以根据接口调用方的PID、接口调用方对应的用户ID、接口调用方的密钥和接口调用方请求调用的服务ID拼接URL(Uniform Resource Locator,统一资源定位符),以向接口提供方发送接口调用方对应的规范参数的值。
在一种可能的实现方式中,对访问请求进行验证,包括:对该服务的可用性进行验证。在该实现方式中,若该服务不可用,则可以判定访问请求验证不通过。
作为该实现方式的一个示例,接口代理方可以从Redis缓存中获取该服务的信息,以验证该服务是否可用。例如,接口代理方可以从Redis缓存中查询该服务的开始时间与结束时间,并判断当前系统时间是否在该服务的开始时间与结束时间之间,若是,则判定该服务可用,否则判定该服务不可用。
作为该实现方式的另一个示例,接口代理方可以从ZooKeeper中获取该服务的注册信息,以验证该服务是否可用。例如,接口代理方可以从ZooKeeper中获取该服务的注册信息,并根据该服务的注册信息判断该服务是否合法,若是,则判定该服务可用,否则判定该服务不可用。
在一种可能的实现方式中,对访问请求进行验证,包括:对访问请求携带的密钥进行签名验证。在该实现方式中,接口代理方可以对接口调用方发起的访问请求中携带的密钥进行签名验证,以判断该接口调用方是否有权限调用该服务。在签名验证不通过的情况下,可以判定访问请求验证不通过。
在一种可能的实现方式中,对访问请求进行验证,包括:对该服务的可访问次数进行验证。作为该实现方式的一个示例,接口代理方可以从Redis缓存中查询该服务当日的可访问次数,在该服务当日的可访问次数为0的情况下,可以判定该服务的可访问次数验证不通过,并可以进一步判定访问请求验证不通过。
作为本实施例的一个示例,在该服务不可用、签名验证不通过或者该服务的可访问次数验证不通过的情况下,可以判定访问请求验证不通过;在该服务可用、签名验证通过且该服务的可访问次数验证通过的情况下,可以判定访问请求验证通过。
在一种可能的实现方式中,该方法还包括:记录接口调用方对应的访问记录。在该实现方式中,可以对接口调用方调用各个服务的访问记录进行记录,从而实现对接口调用方的调用行为进行监控。
在一种可能的实现方式中,该方法还包括:在访问请求验证通过的情况下,记录该服务对应的响应时长。在该实现方式中,可以对该服务对应的响应时长进行记录。在该服务对应的响应时长大于第一预设值的情况下,还可以向监控人员发出警报,以使监控人员及时对该服务进行防范。
在一种可能的实现方式中,该方法还包括:在访问请求验证不通过的情况下,记录该服务的状态码。例如,若该服务不可用,则可以记录该服务的状态码为0。在该实现方式中,通过记录服务的状态码,可以及时发现、定位、追踪出现问题的服务。
在一种可能的实现方式中,该方法还包括:在接收到接口提供方申请注册服务的请求的情况下,获取并记录该服务对应的接口提供方的节点信息。作为该实现方式的一个示例,接口提供方可以向接口代理方申请注册服务,接口代理方在接收到接口提供方申请注册服务的请求的情况下,可以判断该服务是否满足注册要求,若满足注册要求,则可以在ZooKeeper中记录该服务对应的接口提供方的节点信息。其中,ZooKeeper为开放源码的分布式应用程序协调服务。接口提供方的节点信息可以包括接口提供方的IP地址和该服务对应的接口名称等,在此不作限定。
在另一实现方式中,接口提供方可以向接口注册机申请注册服务,接口注册机在接收到接口提供方申请注册服务的请求的情况下,可以判断该服务是否满足注册要求,若满足注册要求,则可以在ZooKeeper中记录该服务对应的接口提供方的节点信息。在该实现方式中,接口注册机对应的ZooKeeper可以分布式集群部署。接口代理方可以从接口注册机获取该服务的节点信息。接口注册机可以与接口代理方由同一服务器或者同一服务器集群来实现。
这样,根据本发明上述实施例的接口调用方法能够对接口调用过程进行整体的监控、分析,在由于接口提供方无响应或者超时等原因导致服务调用失败的情况下,能够及时通知接口调用方,并能及时发现出现问题的接口,避免发生由于某一个或多个接口出现问题而拖垮整个业务线的接口请求的情况,从而能够提高接口调用的可靠性。此外,根据本实施例的接口调用方法能够整合接口之间调用的监控、分析,通过接口代理方为接口调用方提供统一接口,使接口调用方无需关心底层实现细节,提高接口调用方调用接口的操作友好性。
实施例2
图3示出根据本发明另一实施例的接口调用方法的实现流程图。本实施例的执行主体可以为接口调用方,该接口调用方可以为具备计算能力的主机服务器、个人计算机或者可携带的便携式计算机或终端等,在此不作限定。如图3所示,该方法主要包括:
在步骤S31中,向接口代理方发送申请调用服务的请求。
在本实施例中,接口调用方可以向接口代理方发送申请调用服务的请求。其中,该服务可以为应用服务,该服务对应的接口可以为应用服务接口,在此不作限定。
在步骤S32中,接收接口代理方返回的与该服务相关的配置参数。
在步骤S33中,根据与该服务相关的配置参数向接口代理方发起访问请求,以使接口代理方对访问请求进行验证。
在本实施例中,接口调用方可以根据与该服务相关的配置参数发起的访问请求。
在步骤S34中,在访问请求验证不通过的情况下,接收接口代理方返回的反馈信息。
根据本发明上述实施例的接口调用方法能够在服务调用失败的情况下获取接口代理方返回的反馈信息,由此使接口调用方能够及时尝试调用其他服务,从而能够提高接口调用的可靠性。
图4示出根据本发明实施例的接口调用方法步骤S32的一示例性的实现流程图。如图4所示,接收接口代理方返回的与该服务相关的配置参数,包括:
在步骤S41中,接收接口代理方分配的唯一标识符以及该服务对应的密钥。
作为本实施例的一个示例,接口代理方为每个接口调用方分配唯一标识符以及该服务对应的密钥,接口调用方接收接口代理方分配的唯一标识符以及该服务对应的密钥。其中,唯一标识符可以用于唯一标识接口调用方,密钥可以用于签名验证。
在步骤S42中,接收接口代理方返回的该服务的规范参数。
其中,该服务的规范参数可以包括以下至少一项:接口调用方的PID、接口调用方对应的用户ID、接口调用方的密钥和接口调用方请求调用的服务ID。
在一种可能的实现方式中,根据与该服务相关的配置参数向接口代理方发起访问请求,包括:根据唯一标识符、密钥以及规范参数的值向接口代理方发起访问请求。
这样,根据本实施例的接口调用方法能够在服务调用失败的情况下获取接口代理方返回的反馈信息,由此使接口调用方能够及时尝试调用其他服务,从而能够提高接口调用的可靠性。此外,根据本实施例的接口调用方法能够整合接口之间调用的监控、分析,通过接口代理方为接口调用方提供统一接口,使接口调用方无需关心底层实现细节,提高接口调用方调用接口的操作友好性。
实施例3
图5示出根据本发明另一实施例的接口调用装置的结构框图。该装置可以用于运行图1或图2所示的接口调用方法。为了便于说明,在图5中仅示出了与本实施例相关的部分。
如图5所示,该装置包括:配置参数发送模块51,用于在接收到接口调用方申请调用服务的请求的情况下,向所述接口调用方发送与所述服务相关的配置参数,以使所述接口调用方根据与所述服务相关的配置参数发起访问请求;验证模块52,用于在接收到所述接口调用方根据与所述服务相关的配置参数发起的访问请求的情况下,对所述访问请求进行验证;调用模块53,用于在所述访问请求验证通过的情况下,获取所述服务对应的接口提供方的节点信息,根据所述节点信息向所述接口提供方发起调用所述服务的请求,并向所述接口提供方发送所述接口调用方的相关参数;反馈模块54,用于在所述访问请求验证不通过的情况下,向所述接口调用方进行反馈。
图6示出根据本发明实施例的接口调用装置的一示例性的结构框图。该装置可以用于运行图1或图2所示的接口调用方法。为了便于说明,在图6中仅示出了与本实施例相关的部分。图6中标号与图5相同的组件具有相同的功能,为简明起见,省略对这些组件的详细说明。如图6所示:
在一种可能的实现方式中,所述配置参数发送模块51包括:分配子模块511,用于为所述接口调用方分配以及唯一标识符以及所述服务对应的密钥;规范参数发送子模块512,用于向所述接口调用方发送所述服务的规范参数。
在一种可能的实现方式中,所述调用模块53包括:规范参数值发送子模块531,用于向所述接口提供方发送所述接口调用方对应的所述规范参数的值。
在一种可能的实现方式中,所述验证模块52包括:可用性验证子模块521,用于对所述服务的可用性进行验证。
在一种可能的实现方式中,所述验证模块52包括:签名验证子模块522,用于对所述访问请求携带的密钥进行签名验证。
在一种可能的实现方式中,所述验证模块52包括:可访问次数验证子模块523,用于对所述服务的可访问次数进行验证。
在一种可能的实现方式中,所述装置还包括:第一记录模块55,用于记录所述接口调用方对应的访问记录。
在一种可能的实现方式中,所述装置还包括:第二记录模块56,用于在所述访问请求验证通过的情况下,记录所述服务对应的响应时长。
在一种可能的实现方式中,所述装置还包括:第三记录模块57,用于在所述访问请求验证不通过的情况下,记录所述服务的状态码。
在一种可能的实现方式中,所述装置还包括:服务注册模块58,用于在接收到所述接口提供方申请注册服务的请求的情况下,获取并记录所述服务对应的接口提供方的节点信息。
这样,根据本发明上述实施例的接口调用装置能够对接口调用过程进行整体的监控、分析,在由于接口提供方无响应或者超时等原因导致服务调用失败的情况下,能够及时通知接口调用方,并能及时发现出现问题的接口,避免发生由于某一个或多个接口出现问题而拖垮整个业务线的接口请求的情况,从而能够提高接口调用的可靠性。此外,根据本实施例的接口调用装置能够整合接口之间调用的监控、分析,通过接口代理方为接口调用方提供统一接口,使接口调用方无需关心底层实现细节,提高接口调用方调用接口的操作友好性。
实施例4
图7示出根据本发明另一实施例的接口调用装置的结构框图。该装置可以用于运行图3或图4所示的接口调用方法。为了便于说明,在图7中仅示出了与本实施例相关的部分。
如图7所示,该装置包括:调用请求发送模块71,用于向接口代理方发送申请调用服务的请求;配置参数接收模块72,用于接收所述接口代理方返回的与所述服务相关的配置参数;访问请求发起模块73,用于根据与所述服务相关的配置参数向所述接口代理方发起访问请求,以使所述接口代理方对所述访问请求进行验证;反馈信息接收模块74,用于在所述访问请求验证不通过的情况下,接收所述接口代理方返回的反馈信息。
图8示出根据本发明实施例的接口调用装置的一示例性的结构框图。该装置可以用于运行图3或图4所示的接口调用方法。为了便于说明,在图8中仅示出了与本实施例相关的部分。图8中标号与图7相同的组件具有相同的功能,为简明起见,省略对这些组件的详细说明。如图8所示:
在一种可能的实现方式中,所述配置参数接收模块72包括:第一接收子模块721,用于接收所述接口代理方分配的唯一标识符以及所述服务对应的密钥;第二接收子模块722,用于接收所述接口代理方返回的所述服务的规范参数。
在一种可能的实现方式中,所述访问请求发起模块73用于:根据所述唯一标识符、所述密钥以及所述规范参数的值向所述接口代理方发起访问请求。
这样,根据本实施例的接口调用装置能够在服务调用失败的情况下获取接口代理方返回的反馈信息,由此使接口调用方能够及时尝试调用其他服务,从而能够提高接口调用的可靠性。此外,根据本实施例的接口调用方法能够整合接口之间调用的监控、分析,通过接口代理方为接口调用方提供统一接口,使接口调用方无需关心底层实现细节,提高接口调用方调用接口的操作友好性。
实施例5
图9示出根据本发明另一实施例的接口调用系统的系统架构图。如图9所示,该接口调用系统包括接口调用方91、接口代理方92和接口提供方93,接口调用方91与接口代理方92通过有线或无线的方式连接通信,接口代理方92与接口提供方93通过有线或无线的方式连接通信。其中,接口代理方92可以集成在如图5或图6所示的接口调用装置中,并可以用于执行图1或图2所示的接口调用方法,接口调用方91可以集成在如图7或图8所示的接口调用装置中,并可以用于执行图3或图4所示的接口调用方法。
这样,根据本发明上述实施例的接口调用系统能够通过接口代理方对接口调用过程进行整体的监控、分析,在由于接口提供方无响应或者超时等原因导致服务调用失败的情况下,接口代理方能够及时通知接口调用方,并能及时发现出现问题的接口,避免发生由于某一个或多个接口出现问题而拖垮整个业务线的接口请求的情况,从而能够提高接口调用的可靠性。此外,根据本实施例的接口调用系统能够通过接口代理方整合接口之间调用的监控、分析,通过接口代理方为接口调用方提供统一接口,使接口调用方无需关心底层实现细节,提高接口调用方调用接口的操作友好性。
实施例6
图10示出了本发明的另一个实施例的一种接口调用设备的结构框图。所述接口调用设备1100可以是具备计算能力的主机服务器、个人计算机PC、或者可携带的便携式计算机或终端等。本发明具体实施例并不对计算节点的具体实现做限定。
所述接口调用设备1100包括处理器(processor)1110、通信接口(Communications Interface)1120、存储器(memory)1130和总线1140。其中,处理器1110、通信接口1120、以及存储器1130通过总线1140完成相互间的通信。
通信接口1120用于与网络设备通信,其中网络设备包括例如虚拟机管理中心、共享存储等。
处理器1110用于执行程序。处理器1110可能是一个中央处理器CPU,或者是专用集成电路ASIC(Application Specific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。
存储器1130用于存放文件。存储器1130可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。存储器1130也可以是存储器阵列。存储器1130还可能被分块,并且所述块可按一定的规则组合成虚拟卷。
在一种可能的实施方式中,上述程序可为包括计算机操作指令的程序代码。该程序具体可用于:实现实施例1或实施例2中各步骤的操作。
本领域普通技术人员可以意识到,本文所描述的实施例中的各示例性单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件形式来实现,取决于技术方案的特定应用和设计约束条件。专业技术人员可以针对特定的应用选择不同的方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
如果以计算机软件的形式来实现所述功能并作为独立的产品销售或使用时,则在一定程度上可认为本发明的技术方案的全部或部分(例如对现有技术做出贡献的部分)是以计算机软件产品的形式体现的。该计算机软件产品通常存储在计算机可读取的非易失性存储介质中,包括若干指令用以使得计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本发明各实施例方法的全部或部分步骤。而前述的存储介质包括U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。