一种接口调用方法和装置与流程

文档序号:12789747阅读:196来源:国知局
一种接口调用方法和装置与流程

本申请涉及网络通信技术领域,特别涉及一种接口调用方法和装置。



背景技术:

随着网络技术的发展,以及用户的需求越来越多,各式各样的服务器不断涌现。其中,很多服务器提供服务的对象是有限制的,只有通过服务器认证的用户才可以获得服务器提供的服务。

通常,服务器中包含若干接口,每一个接口对应于服务器提供的不同服务。客户端可以通过调用服务端提供的接口来获得服务器提供的相应的服务。

在现有技术中,服务端先对客户端的用户身份进行认证,在客户端的用户身份认证通过之后,客户端才可以调用服务端提供的接口。然而,当客户端调用接口结束后,服务端就会与客户端断开TCP连接。因此,当客户端再次调用接口时,客户端需要再次与服务端建立TCP连接,需要服务端对客户端的用户身份重新认证,并在用户身份认证通过后,客户端才可以重新调用服务端提供的接口。

由于当客户端每一次调用服务端提供的接口时,客户端均需要重新与服务端建立TCP连接,因此服务端对客户端发送的接口调用请求的响应速度很慢。



技术实现要素:

有鉴于此,本申请提供一种接口调用方法和装置,应用于服务端,采用本申请提供的技术方案,加快服务端对客户端发送的接口调用请求的响应速度。

具体地,本申请是通过如下技术方案实现的:

一种接口调用方法,应用于服务端,包括:

接收客户端发送的接口调用请求;

判断为所述客户端设置的接口调用保活时长是否超时;其中,所述接口调用保活时长为所述客户端首次调用本端的任一接口时为所述客户端设置的;

如果超时,断开与所述客户端的连接;如果未超时,响应所述接口调用请求执行接口调用;其中,所述接口调用保活时长未超时时,本端与所述客户端保持连接状态。

一种接口调用的装置,应用于服务端,包括:

接收单元,用于接收客户端发送的接口调用请求;

判断单元,用于判断为所述客户端设置的接口调用保活时长是否超时;其中,所述接口调用保活时长为所述客户端首次调用本端的任一接口时为所述客户端设置的;

执行单元,用于如果超时,断开与所述客户端的连接;如果未超时,响应所述接口调用请求执行接口调用;其中,所述接口调用保活时长未超时时,本端与所述客户端保持连接状态。

当客户端首次登录进行认证成功后,所述客户端调用服务端所提供的接口中的任一接口时,所述服务端可以为所述客户端设置接口调用保活时长。当所述客户端完成本次接口调用后,在所述接口调用保活时长内,所述客户端与所述服务端一直保持连接状态。因此,在所述接口调用保活时长内,如果所述客户端再次调用接口,那么所述服务端不需要与所述客户端重新建立连接后,对所述客户端重新进行认证,所述服务端可以直接响应于所述客户端发送的接口调用请求执行接口调用,从而,加快了所述服务端对所述客户端发送的接口调用请求的响应速度。

附图说明

图1为本申请示例性示出的一种接口调用方法流程图;

图2为本申请实施例示出的在线命令列表示意图;

图3为本申请实施例示出的另一种在线命令列表示意图;

图4为本申请一种接口调用装置所在服务端的一种硬件结构图;

图5为本申请实施例示例性示出的一种接口调用装置。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。

在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

随着网络技术的发展,以及用户的需求越来越多,各式各样的服务器不断涌现。其中,很多服务器提供服务的对象是有限制的,只有通过服务器认证的用户才可以获得服务器提供的服务。

通常,服务器中包含若干接口,每一个接口对应于服务器提供的不同服务。客户端可以通过调用服务端提供的接口来获得服务器提供的相应的服务。

在现有技术中,当用户首次访问服务端时,客户端与所述服务端建立TCP连接,然后所述客户端可以获取用户在登录页面中输入的认证信息(用户名、密码等),并保存所述认证信息。同时,所述客户端可以将所述认证信息发送至服务端。所述服务端接收到所述认证信息后,可以对所述认证信息进行认证,并在对所述认证信息认证通过后,向所述客户端发送认证成功的响应消息,以及触发接口调用程序,为客户端提供接口调用服务。

所述客户端接收到认证成功的响应消息后,用户可以基于所述客户端向所述服务端发送接口调用请求。当所述服务端接收到所述接口调用请求时,可以读取所述接口调用请求中携带的接口调用命令ID,并获取到与所述接口调用命令对应的参数后,生成与所述接口调用命令ID对应的接口调用命令。然后,所述服务端可以响应所述接口调用命令执行接口调用。

当所述服务端执行完接口调用后,所述服务端会关闭接口调用程序,并断开与所述客户端的连接。当所述客户端再次获取到用户向所述服务端发送的接口调用请求时,由于此时所述客户端与所述服务端处于断开状态,所述客户端需要与所述服务端重新建立连接。

所述客户端可以将保存的认证信息重新发送至所述服务端,由所述服务端对所述认证信息重新认证,并在认证通过后,重新触发接口调用程序,以及向所述客户端发送认证成功的响应消息。

当所述客户端接收到认证成功的响应消息后,所述客户端可以将获取到的接口调用请求发送至所述服务端。所述服务端接收到所述接口调用请求时,按照上述响应接口调用请求执行接口调用的过程,重新执行上述过程。

综上所述,由于客户端每次完成接口调用后,服务端均会与所述客户端断开连接,当客户端再次调用所述服务端提供的接口时,所述客户端需要与所述服务端重新建立连接,并重新通过所述服务端的认证后,才能调用所述服务端提供的接口,因此,所述服务端对所述客户端发送的接口调用请求的响应速度比较慢。

为了解决现有技术中的问题,本申请提供了一种接口调用方法,应用于服务端,所述方法包括:接收客户端发送的接口调用请求;判断为所述客户端设置的接口调用保活时长是否超时;其中,所述接口调用保活时长为所述客户端首次调用本端的任一接口时为所述客户端设置的;如果超时,断开与所述客户端的连接;如果未超时,响应所述接口调用请求执行接口调用;其中,所述接口调用保活时长未超时时,本端与所述客户端保持连接状态。

当客户端首次登录进行认证成功后,所述客户端调用服务端所提供的接口中的任一接口时,所述服务端可以为所述客户端设置接口调用保活时长。当所述客户端完成本次接口调用后,在所述接口调用保活时长内,所述客户端与所述服务端一直保持连接状态。因此,在所述接口调用保活时长内,如果所述客户端再次调用接口,那么所述服务端不需要与所述客户端重新建立连接后,对所述客户端重新进行认证,所述服务端可以直接响应于所述客户端发送的接口调用请求执行接口调用,从而,加快了所述服务端对所述客户端发送的接口调用请求的响应速度。

请参见图1,图1为本申请示例性示出的一种接口调用方法流程图,应用于服务端,具体执行以下步骤:

步骤101:接收客户端发送的接口调用请求;

步骤102:判断为所述客户端设置的接口调用保活时长是否超时;其中,所述接口调用保活时长为所述客户端首次调用本端的任一接口时为所述客户端设置的;

步骤103:如果超时,断开与所述客户端的连接;如果未超时,响应所述接口调用请求执行接口调用;其中,所述接口调用保活时长未超时时,本端与所述客户端保持连接状态。

在本申请中,当服务端接收到客户端的连接请求时,与所述客户端建立连接,然后对所述客户端发送的认证信息进行认证。在认证成功后,所述客户端可以向所述服务端发送接口调用请求,所述服务端可以响应于所述接口调用执行接口调用,并为所述客户端设置接口调用保活时长。在所述保活时长内,所述客户端与所述服务端保护连接状态,当所述客户端再次向所述服务端发送接口调用请求时,所述客户端不需要与所述服务端重新建立连接以及重新进行认证。所述服务端可以直接响应于所述接口调用请求执行接口调用。

本申请示出的技术方法的实现过程可以分为认证过程和接口调用过程,其中,所述认证过程由所述服务端的认证程序来完成,所述接收调用过程由所述服务端的接口调用程序完成。

(1)、认证过程

当用户触发客户端的启动时,所述客户端可以向所述服务端发起连接请求,所述客户端可以与所述服务端建立TCP连接。当所述客户端与所述服务端成功建立连接后,用户可以在所述客户端的登录页面中输入认证信息,将携带所述认证信息的认证请求发送至所述服务端。

当所述服务端接收到所述客户端发送的认证请求后,所述服务端可以从所述认证请求中获取认证信息,然后对所述认证进行认证。如果所述服务端对所述客户端认证通过,所述服务端可以向所述客户端返回认证成功的响应消息,并在内存中为所述客户端创建在线命令列表。如果所述服务端对所述客户端认证失败,所述服务端可以向所述客户端返回认证失败的响应消息。

其中,上述在线命令列表为在所述客户端在线时,所述服务端为所述客户端创建的用于存储接口调用命令的列表。

(2)、接口调用过程

a、首次调用接口

当所述客户端接收所述服务端返回的认证成功的响应消息时,所述客户端可以向所述服务端发送接口调用请求;其中,本次发送的接口调用请求为所述客户端认证成功后首次向所述服务端发送的接口调用请求;所述接口调用请求中携带了状态标识符。

其中,上述状态标识符为所述客户端通过检测本端向所述服务端发送接口调用请求中是否携带接口调用命令ID,以及携带的接口调用命令ID是否已经向所述服务端发送过,来表示所述客户端的状态的标签。

当所述客户端主动与所述服务端断开连接时,所述接口调用请求中不会携带接口调用命令ID,所述状态标识符则定义为断开标识符。当所述客户端调用所述服务端提供的接口时,所述客户端可以检测本次进行接口调用的接口调用命令ID是否已经向所述服务端发送过,如果发送过,所述状态标识符则定义为保持标识符;如果没有发送过,所述状态标识符则定义为新建标识符。

由于本次接口调用为所述客户端认证成功后,所述客户端首次向所述服务端发送接口调用请求,因此,所述接口调用请求中携带的状态标识符为新建标识符。

当所述服务端接收到所述客户端发送的所述接口调用请求时,所述服务端触发接口调用程序的启动。所述服务端可以从所述接口调用请求中获取状态标识符并识别所述状态标识符。此时,所述客户端可以识别出所述状态标识符为新建标识符。

在这样的情况下,所述服务端可以进一步从所述接口调用请求中获取接口调用命令ID。然后,所述服务端可以获取与所述接口调用命令ID对应的参数,并基于所述接口调用命令ID,以及与所述接口调用命令ID对应的参数创建命令表项。

当所述服务端创建完命令表项后,所述服务端可以在内存中查找为所述客户端创建的在线命令列表,并将所述命令表项添加至所述在线命令列表中,以及,所述服务端可以基于所述命令表项执行接口调用。

其中,当所述服务端响应于所述客户端发送的接口调用请求执行接口调用后,所述服务端可以为所述客户端设置接口调用保活时长。

在所述接口调用保活时长内,所述服务端与所述客户端保持连接状态。如果所述客户端在所述接口调用保活时长内再次向所述服务端发送接口调用请求时,所述客户端无需再向所述服务端发送认证请求,由所述服务端对所述客户端重新进行认证。

b、再次调用接口

在本申请中,所述服务端实时判断为所述客户端设置的接口调用保护时长是否超时。如果所述接口调用保活时长超时,所述服务端可以与所述客户端直接断开连接,并将为所述客户端创建的在线命令列表删除。如果所述接口调用保活时长未超时,保持所述服务端与所述客户端的连接状态。

在所述服务端与所述客户端保持连接状态期间,当服务端接收到所述客户端发送的接口调用请求时,所述服务端可以从所述接口调用请求中获取所述客户端的状态标识符,并判断所述状态标识符是否为断开标识符。

需要说明的是,所述服务端判断为所述客户端设置的接口调用保活时长是否超时这个过程,与所述服务端接收所述客户端发送的接口调用请求这个过程是并行的。

如果所述状态标识符为断开标识符,说明所述客户端主动与所述客户端断开连接,所述服务端可以断开与所述客户端的连接,并将为所述客户端创建的在线命令列表删除。如果所述状态标识符不是断开标识符,所述服务端可以进一步判断所述客户端的状态标识符。

在本申请中,如果所述状态标识符为新建标识符,说明所述客户端本次发送的接口调用请求中的接口调用命令ID为新的ID。所述服务端可以读取所述接口调用请求中携带的接口调用命令ID,并获取与所述接口调用命令ID对应的参数后生成与所述接口调用命令ID对应的接口调用命令。然后,所述服务端可以将所述接口调用命令添加至为所述客户端创建的在线命令列表,并响应所述新建的接口调用命令执行接口调用。

请参见图2,图2为本申请实施例示出的在线命令列表示意图。

在本申请中,所述在线命令列表中包括客户端ID,接口调用命令ID,以及与所述接口调用命令ID对应的接口调用命令。在这里只是对在线命令列表的组成以及形式进行示例性的描述,对所述在线命令列表中是否包括其它内容,以及所述在线命令列表的形式不进行限定。

如果所述状态标识符为保持标识符,说明所述客户端本次发送的接口调用请求中的接口调用命令ID在此之前已经发送过。所述服务端可以读取所述接口调用请求中携带的接口调用命令ID,然后在为所述客户端创建的在线命令列表中查找与所述接口调用命令ID对应的接口调用命令。所述服务端查找到接口调用命令后,所述服务端可以响应所述接口调用命令执行接口调用。

如果,在所述接口调用保活时长内,所述客户端一直在调用所述服务端提供的接口,如果一直不更改所述接口调用保活时长,那么当所述接口调用保护时长超时后,所述服务端会直接断开与所述客户端的连接,那么所述客户端需要重新建立连接,会导致所述客户端的业务短暂中断,因此,当所述客户端每次成功调用接口后,所述服务端需要更新所述接口调用保活时长。

因此,在本申请中,无论所述状态标识符为新建标识符还是保持标识符,当所述客户端完成接口调用后,所述服务端可以重置为所述客户端设置的所述接口调用保活时长。

由于,不同的客户端所执行的业务不同,从而所述客户端需要调用的接口也会不相同,为了加快所述服务端对所述客户端发送的接口调用请求的响应速度,可以对所述在线命令列表中的接口调用命令按照频率高低进行排序,使执行频率比较高的接口调用命令能尽快被查找到,从而可以加快所述服务端对所述客户端的响应速度。

请参见图3,图3为本申请实施例示出的另一种在线命令列表示意图。

在本申请中,在所述在线命令列表中添加了执行次数字段和优先级字段,所述执行次数字段用于记录接口调用命令的执行次数,所述优先级字段用于记录接口调用命令的优先级。其中,接口调用命令的执行次数越多,所述接口调用命令的优先级越高。

其中,图3所示的示意图中,所述优先级越高,优先级数值越小,在这里对优先级的表述方式不进行限定。

当所述客户端完成接口调用后,所述服务端可以在所述在线命令列表中,对与本次接口调用对应的接口调用命令的执行次数进行累加。

当所述服务端将接口调用命令的执行次数进行累加后,所述服务端根据所述接口调用命令的执行次数的变化,实时对所述接口调用命令的优先级进行更新。

然后,所述服务端可以基于更新后的所述接口调用程序的优先级,按照优先级的顺序对所述在线命令列表中的接口调用命令进行排序,使所述在线命令列表中优先级高的接口调用命令优先被查询匹配。最后,所述服务端可以响应与本次接口调用对应的接口调用命令执行接口调用。

由以上本申请实施例示出的技术方法可见,当客户端首次登录进行认证成功后,所述客户端调用服务端所提供的接口中的任一接口时,所述服务端可以为所述客户端设置接口调用保活时长。当所述客户端完成本次接口调用后,在所述接口调用保活时长内,所述客户端与所述服务端一直保持连接状态。因此,在所述接口调用保活时长内,如果所述客户端再次调用接口,那么所述服务端不需要与所述客户端重新建立连接后,对所述客户端重新进行认证,所述服务端可以直接响应于所述客户端发送的接口调用请求执行接口调用,从而,加快了所述服务端对所述客户端发送的接口调用请求的响应速度。

与前述一种接口调用方法的实施例相对应,本申请还提供了一种接口调用装置的实施例。

本申请一种接口调用装置的实施例可以应用在服务端上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在服务端的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图4所示,为本申请一种接口调用装置所在服务端的一种硬件结构图,除了图4所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的服务端通常根据该接口调用的实际功能,还可以包括其他硬件,对此不再赘述。

请参见图5,图5为本申请实施例示例性示出的一种接口调用装置,应用于服务端,所述装置包括:接收单元510,判断单元520,执行单元530。

其中,所述接收单元510,用于接收客户端发送的接口调用请求;

所述判断单元520,用于判断为所述客户端设置的接口调用保活时长是否超时;其中,所述接口调用保活时长为所述客户端首次调用本端的任一接口时为所述客户端设置的;

所述执行单元530,用于如果超时,断开与所述客户端的连接;如果未超时,响应所述接口调用请求执行接口调用;其中,所述接口调用保活时长未超时时,本端与所述客户端保持连接状态。

在本申请示出的实施例中,所述装置还包括:

接收子单元,用于接收所述客户端发送的认证请求;其中,所述认证请求携带认证信息;

认证单元,用于基于所述认证信息对所述客户端进行认证;

创建单元,用于如果认证通过,为所述客户端创建在线命令列表。

当所述服务端对所述客户端认证通过,并为所述客户端创建在线命令列表后,所述服务端可以接收所述客户端发送的接口调用请求,并对所述接口调用请求进行响应。其中,所述接口调用请求携带状态标识符。

所述执行单元530具体用于:

如果所述状态标识符为新建标识符,读取所述接口调用请求中携带的接口调用命令ID,在与所述客户端对应的在线命令列表中为所述客户端新建与所述接口调用命令ID对应的接口调用命令,并响应于新建的该接口调用命令执行接口调用;

如果所述状态标识符为保持标识符,读取所述接口调用请求中携带的接口调用命令ID,并查找与所述客户端对应的在线命令列表中是否缓存了该接口调用命令ID;如果是,从所述在线命令列表中读取与该接口调用命令ID对应的接口调用命令,并响应于该接口调用命令执行接口调用。

另外,在本申请示出的实施例中,所述装置还包括

删除单元,用于如果所述状态标识符为断开标识符,断开与所述客户端的连接,并删除为所述客户端创建的所述在线命令列表。

重置单元,用于当完成所述接口调用时,重置所述接口调用保活时长;以及,

累加单元,用于在所述在线命令列表中,对与本次接口调用对应的接口调用命令的执行次数进行累加。

设置单元,用于基于所述在线命令列表中各接口调用命令对应的执行次数,为各接口调用命令设置优先级;其中,所述接口调用命令的执行次数越多,优先级越高;以及,

更新单元,用于基于各接口调用命令的执行次数的变化,对所述各接口调用命令的优先级进行实时更新;

排序单元,用于基于各接口调用命令的优先级,对所述在线命令列表中各接口调用命令进行排序。

删除子单元,用于当所述接口调用保活时长超时,并断开与所述客户端的连接后,删除为所述客户端创建的所述在线命令列表。

上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。

对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1