1.本申请涉及计算机技术领域,特别是涉及一种接口请求处理方法、装置、计算机设备和存储介质。
背景技术:2.随着计算机技术的发展,需要通过计算机进行事务处理。在一些情况下,计算机无法通过调用一个接口来实现整个事务,而是需要依次调用多个服务器接口进行业务处理,从而才能实现该事务。
3.在调用多个服务器接口进行业务处理时,若其中一个接口在处理业务的过程中发生异常,就会导致存储器中只存储了部分执行成功的接口所对应的业务处理结果,因而不能保证事务的原子性处理,导致事务的处理结果不准确。
技术实现要素:4.基于此,有必要针对上述技术问题,提供一种能够提高事务的处理结果准确性的接口请求处理方法、装置、计算机设备和存储介质。
5.一种接口请求处理方法,所述方法包括:
6.接收针对目标事务的接口请求;
7.针对每个所述接口请求,在调用所述接口请求所指定的接口进行业务处理后,校验所生成的业务处理结果;
8.若校验所述业务处理结果为处理成功,则将所述业务处理结果和所述目标事务的事务标识关联存储至临时存储器中;
9.在校验用于实现所述目标事务的多个接口请求的业务处理结果皆为处理成功后,将所述临时存储器中存储的各业务处理结果和所述事务标识存储至正式存储器中。
10.在其中一个实施例中,所述方法还包括:
11.若校验所述业务处理结果为处理失败,则执行回滚,以清除所述临时存储器中与所述事务标识关联存储的业务处理结果。
12.在其中一个实施例中,所述方法还包括:
13.基于所述业务处理结果向请求端返回请求处理结果;
14.若请求处理结果为请求失败,则在接收所述请求端针对所述事务重新发送的第一接口请求后,则返回执行在调用所述接口请求所指定的接口进行业务处理后,校验所生成的业务处理结果的步骤;
15.其中,所述第一接口请求,是针对实现所述目标事务的第一个接口发送的接口请求。
16.在其中一个实施例中,所述方法还包括:
17.若请求处理结果为请求成功,则在接收所述请求端针对所述目标事务发送的下一个接口请求后,执行所述在调用所述接口请求所指定的接口进行业务处理后,校验所生成
的业务处理结果的步骤。
18.在其中一个实施例中,所述在校验用于实现所述目标事务的多个接口请求的业务处理结果皆为处理成功后,将所述临时存储器中存储的各业务处理结果和所述事务标识存储至正式存储器中包括:
19.在校验针对所述目标事务的最后一个接口请求的业务处理结果为成功时,则将所述最后一个接口请求对应的业务处理结果、以及所述临时存储器中与所述事务标识关联的业务处理结果,在正式存储器中与所述事务标识关联存储。
20.在其中一个实施例中,所述方法还包括:
21.当所述接口请求为针对所述目标事务的第一接口请求时,生成所述目标事务的事务标识;所述第一接口请求,是针对实现所述目标事务的第一个接口发送的接口请求;
22.若校验所述业务处理结果为处理成功,则将所述业务处理结果和所述目标事务的事务标识关联存储至临时存储器中,包括:
23.若校验第一接口请求的业务处理结果为处理成功,则将所述业务处理结果和生成的所述事务标识关联存储至临时存储器中。
24.在其中一个实施例中,所述方法还包括:
25.向请求端返回生成的所述事务标识;
26.若校验所述业务处理结果为处理成功,则将所述业务处理结果和所述目标事务的事务标识关联存储至临时存储器中,包括:
27.若校验非第一接口请求的业务处理结果为处理成功,则将所述非第一接口请求的业务处理结果和非第一接口请求中携带的所述事务标识关联存储至临时存储器中。
28.一种接口请求处理装置,所述装置包括:
29.接收模块,用于接收针对目标事务的接口请求;
30.校验模块,用于针对每个所述接口请求,在调用所述接口请求所指定的接口进行业务处理后,校验所生成的业务处理结果;
31.存储模块,用于若校验所述业务处理结果为处理成功,则将所述业务处理结果和所述目标事务的事务标识关联存储至临时存储器中;
32.所述存储模块,还用于在校验用于实现所述目标事务的多个接口请求的业务处理结果皆为处理成功后,将所述临时存储器中存储的各业务处理结果和所述事务标识存储至正式存储器中。
33.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
34.接收针对目标事务的接口请求;
35.针对每个所述接口请求,在调用所述接口请求所指定的接口进行业务处理后,校验所生成的业务处理结果;
36.若校验所述业务处理结果为处理成功,则将所述业务处理结果和所述目标事务的事务标识关联存储至临时存储器中;
37.在校验用于实现所述目标事务的多个接口请求的业务处理结果皆为处理成功后,将所述临时存储器中存储的各业务处理结果和所述事务标识存储至正式存储器中。
38.一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执
行时实现以下步骤:
39.接收针对目标事务的接口请求;
40.针对每个所述接口请求,在调用所述接口请求所指定的接口进行业务处理后,校验所生成的业务处理结果;
41.若校验所述业务处理结果为处理成功,则将所述业务处理结果和所述目标事务的事务标识关联存储至临时存储器中;
42.在校验用于实现所述目标事务的多个接口请求的业务处理结果皆为处理成功后,将所述临时存储器中存储的各业务处理结果和所述事务标识存储至正式存储器中。
43.上述接口请求处理方法、装置、计算机设备和存储介质,服务器对每个接口请求所指定的接口的业务处理结果,都进行成功或者失败的校验,只有校验成功的业务处理结果才会与所述目标事务的事务标识关联存储至临时存储器中,并且在所述目标事务的多个接口请求的业务处理结果皆为处理成功后,才将临时存储器中存储的各业务处理结果和所述事务标识存储至正式存储器中。即,只要存在接口调用发生异常,正式存储器中并不会仅存储目标事务部分处理成功的业务处理结果,目标事务则不生效,只有在用于实现目标事务的多个接口请求的业务处理结果皆为处理成功后,才将所有处理成功的业务处理结果存储至正式存储器中从而自动化地保证了同一事务的原子性,提高了事务的处理结果的准确性。
附图说明
44.图1为一个实施例中接口请求处理方法的应用环境图;
45.图2为一个实施例中接口请求处理方法的流程示意图;
46.图3为一个实施例中接口请求处理方法的架构图;
47.图4为一个实施例中接口请求处理方法流程简示图;
48.图5为一个实施例中接口请求处理装置的结构框图;
49.图6为另一个实施例中接口请求处理装置的结构框图;
50.图7为一个实施例中计算机设备的内部结构图;
51.图8为另一个实施例中计算机设备的内部结构图。
具体实施方式
52.为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
53.本申请提供的接口请求处理方法,可以应用于如图1所示的应用环境中。其中,请求端102通过网络与服务器104进行通信。请求端102通过网络向服务器104发送针对目标事务的接口请求。服务器104可以接收请求端102发送针对目标事务的接口请求,并对接收到的接口请求所指定的接口生成的业务处理结果进行处理成果或者失败的校验。若是处理成功,服务器104则可以将业务处理结果和目标事务的事务标识关联存储至临时存储器中。服务器104还可以在目标事务的多个接口请求的业务处理结果皆为处理成功后,将临时存储器中存储的各业务处理结果和事务标识存储至正式存储器中。其中,请求端102可以但不限
于是各种个人计算机、笔记本电脑和台式机等,服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
54.在一个实施例中,如图2所示,提供了一种接口请求处理方法,以该方法应用于图1中的服务器为例进行说明,包括以下步骤:
55.步骤202,接收针对目标事务的接口请求。
56.其中,目标事务,是所需要执行的操作。接口请求,是请求调用接口的指令。可以理解,接口请求,具体可以是一条请求调用接口的命令,也可以是携带了调用接口所需的相关数据的数据包。
57.具体地,请求端响应于用户输入的目标事务生成针对目标事务的接口请求并发送至服务器。服务器接收到请求端发送的针对目标事务的接口请求,对接口请求进行解析,确定接口请求所指定的接口,并调用接口请求所指定的接口根据接口请求进行业务处理。
58.在一个实施例中,一次接口请求用于指定目标事务所需调用的一个接口。那么,当目标事务的实现需要调用多个接口时,请求端可以通过多次发送接口请求以针对目标事务调用多个接口。
59.在一个实施例中,一个接口请求,也可以用于指定目标事务所需调用的多个接口。服务器可以在接收到接口请求后,可以依次调用该接口请求所指定的多个接口进行业务处理。
60.在一个实施例中,请求端可以针对目标事务调用多个服务器中的接口进行业务处理。其中,多个服务器中的接口可以是不同企业的服务器的接口。
61.在一个实施例中,目标事务可以是一次金融互联网交易的相关事务。请求端响应于用户输入的一次金融互联网交易的相关事务,生成针对目标事务的接口请求并发送不同企业的服务器。
62.在一个实施例中,一次金融互联网交易的相关事务,可以是订单退款事务。请求端响应于用户输入的订单退款事务,生成针对订单退款事务的接口请求并发送不同企业的服务器。不同企业的服务器解析接口请求,确定自身的与接口请求对应的接口并进行业务处理。
63.步骤204,针对每个接口请求,在调用接口请求所指定的接口进行业务处理后,校验所生成的业务处理结果。
64.其中,业务处理结果,是根据接口请求调用服务器接口进行业务处理生成的结果。
65.具体地,服务器对请求端发送的每一个接口请求进行解析,确定请求所对应的接口调用,以根据接口请求进行业务处理并生成业务处理结果。服务器在调用每个接口请求所指定的接口进行业务处理后,校验生成的业务处理结果为处理成功或者为处理失败。
66.在一个实施例中,请求端可以按照预先设置的时长向服务器依次发送每个针对目标事务的接口请求。请求端也可以先向服务器发送一个针对目标事务的接口请求并在接收到服务器的回应之后,再向服务器发送下一个针对目标事务的接口请求,直至所有针对目标事务的接口请求均发送完毕。
67.在一个实施例中,服务器可以是调用完接口请求所指定的接口进行业务处理后,再接收请求端发送的下一个接口请求。
68.步骤206,若校验业务处理结果为处理成功,则将业务处理结果和目标事务的事务
标识关联存储至临时存储器中。
69.其中,事务标识,是对应于目标事务的标识。事务标识用于标识针对目标事务生成的接口请求。临时存储器,是临时存储业务处理结果的存储器。
70.在一个实施例中,针对目标事务的进行调用的接口,并非所有接口均成功处理完业务,那么生成的部分业务处理结果就会被存储在临时存储器中。
71.在一个实施例中,将对应于目标事务的业务处理结果存储至临时存储器中,目标事务并不会被辨别为已完成并生效的目标事务。
72.比如,完成一个目标事务需要依次调用a、b和c这3个接口进行业务处理,在调用a接口和b接口进行业务处理后、且业务处理结果为处理成功,但是第3个接口c的业务处理结果为处理失败,那么服务器再次接收到针对同一目标事务的a接口和b接口的接口请求时,未查询到正式存储器中存在有a接口和b接口的对应的业务处理结果,则辨识为该目标事务尚未生效,服务器可以针对实现目标事务再依次调用a、b和c这3个接口进行业务处理。其中,正式存储器,是正式存储业务处理结果的存储器。可以理解的是,相对于临时存储器,正式存储器存储的是在所有接口均成功处理完业务后得到的业务处理结果。
73.具体地,服务器对所调用的接口对应的业务处理结果校验是处理成功或是处理失败进行校验。若校验业务处理结果为处理成功,服务器则将业务处理结果和目标事务的事务标识关联存储至临时存储器中。
74.在一个实施例中,临时存储器,可以是关系型数据库,可以是非关系数据库,也可以是其他独立的文件存储。
75.步骤208,在校验用于实现目标事务的多个接口请求的业务处理结果皆为处理成功后,将临时存储器中存储的各业务处理结果和事务标识存储至正式存储器中。
76.其中,多个接口请求,是实现目标事务所需调用的多个接口的接口请求。
77.具体地,服务器针对目标事务所调用的多个接口的得到的业务处理结果进行检验并均为处理成功,则将临时存储器中存储的各业务处理结果和事务标识存储至正式存储器中。
78.在一个实施例中,如图3所示,完成一个目标事务需要调用3个接口(api:application programming interface,应用程序接口)进行业务处理,请求端(client:客户端)向服务器针对一个目标事务发送了3个接口请求。服务器调用每个接口请求指定的接口进行业务处理,前2个接口均完成业务处理、且业务处理结果为处理成功,则将前2个接口对应的业务处理结果存储在临时存储器(temp storage)中。在3个接口均完成业务处理、且业务处理结果为处理成功,则将临时存储器中存储的各业务处理结果和事务标识存储至正式存储器(db:data base,数据库)中。
79.上述接口请求处理方法中,服务器对每个接口请求所指定的接口的业务处理结果,都进行成功或者失败的校验,只有校验成功的业务处理结果才会与目标事务的事务标识关联存储至临时存储器中,并且在目标事务的多个接口请求的业务处理结果皆为处理成功后,才将临时存储器中存储的各业务处理结果和事务标识存储至正式存储器中。即,只要存在接口调用发生异常,正式存储器中并不会仅存储目标事务部分处理成功的业务处理结果,目标事务则不生效,只有在用于实现目标事务的多个接口请求的业务处理结果皆为处理成功后,才将所有处理成功的业务处理结果存储至正式存储器中从而自动化地保证了同
一事务的原子性,提高了事务的处理结果的准确性。
80.在一个实施例中,方法还包括:若校验业务处理结果为处理失败,则执行回滚,以清除临时存储器中与事务标识关联存储的业务处理结果。
81.具体地,服务器对所调用的接口对应的业务处理结果校验是处理成功或是处理失败进行校验。若校验业务处理结果为处理失败,服务器则执行回滚,根据目标事务对应的事务标识查找到关联的业务处理结果,并将查找到的业务处理结果从临时存储服务器中清除。
82.在一个实施例中,完成一个目标事务需要依次调用多个接口进行业务处理,若服务器调用到其中一个接口进行业务处理,生成业务处理结果并校验为处理失败,则执行回滚,以清除临时存储器中与事务标识关联存储的业务处理结果。
83.比如,完成一个目标事务需要依次调用a、b和c这3个接口进行业务处理,在调用a接口和b接口进行业务处理后、且业务处理结果为处理成功,但是服务器对第3个接口c的业务处理结果检验为处理失败,则执行回滚,以清除临时存储器中与事务标识关联存储的a接口和b接口对应的业务处理结果。
84.在一个实施例中,服务器回滚清除临时存储器中与事务标识关联存储的业务处理结果后,可以结束目标事务,并等待接收请求端的下一次针对相同的目标事务或者是不同的目标事务发送的接口请求。
85.本实施例中,在检验出调用的接口的业务处理结果为处理失败时,服务器直接从临时存储器中清除与事务标识关联存储的业务处理结果,使得存在有接口调用失败的目标事务不会生效,满足多个接口同时执行原子性业务处理的需求。
86.在一个实施例中,若部分接口发生异常,服务器也可以在接收到发生异常的接口对应的接口请求后,调用发生过异常的接口进行业务处理,并将这些业务处理数据与事务标识关联存储至临时存储器中。
87.在一个实施例中,在网络中断造成接口发生异常,导致剩余接口请求未发送至服务器中时,请求端可以继续发送剩余的接口请求至服务器中。
88.比如,完成一个目标事务需要依次调用a、b和c这3个接口进行业务处理,在调用a接口和b接口进行业务处理后、且业务处理结果为处理成功,因网络中断,未实现对接口c进行的调用,可以成功接收到第3个接口c的接口请求后,调用的接口c进行业务处理,并将处理成功的业务处理结果存储至临时存储器中。
89.比如,客户端需要实现退款事务,通过接口a请求得到服务器调用接口a返回的填写订单信息页面,通过接口b请求得到服务器调用接口b返回的填写快递信息页面,在最后一步接口c请求也就是提交退款请求时,因为网络没有发送将退款请求发送出去,客户端可以基于已保存的信息,重新发送接口c请求至服务器,以完成退款事务。
90.在一个实施例中,服务器调用部分接口进行业务处理时发生异常,请求端可以针对发生异常的接口重新发送接口请求至服务器中。
91.比如,完成一个目标事务需要依次调用a、b和c这3个接口进行业务处理,在调用a接口和b接口进行业务处理后、且业务处理结果为处理成功,服务器在调用接口c进行业务处理时发生异常,服务器可以再次接收到第3个接口c的接口请求后,调用的接口c进行业务处理,并将处理成功的业务处理结果存储至临时存储器中。
92.比如,客户端需要实现退款事务,通过接口a请求得到服务器调用接口a返回的填写订单信息页面,通过接口b请求得到服务器调用接口b返回的填写快递信息页面,在最后一步接口c请求也就是提交退款请求时,服务器调用接口c发生异常,未完成退款处理。用户可以针对发生异常的接口c再次发送退款申诉请求,服务器调用接口c进行退款申诉请求处理,以进行退款处理,最终实现退款事务。
93.本实施例中,通过针对发生异常的接口重新调用接口进行业务处理,以确保事务的处理结果的准确性。
94.在一个实施例中,方法还包括:基于业务处理结果向请求端返回请求处理结果;若请求处理结果为请求失败,则在接收请求端针对事务重新发送的第一接口请求后,则返回执行在调用接口请求所指定的接口进行业务处理后,校验所生成的业务处理结果的步骤;其中,第一接口请求,是针对实现目标事务的第一个接口发送的接口请求。
95.其中,请求处理结果,是针对接收到的接口请求进行处理后结果。可以理解,服务器接收到请求端发送的接口请求后,根据接口请求调用接口进行业务处理并生成业务处理结果,若是对业务处理结果校验失败,则向请求端返回请求失败。请求端可以根据获取到的请求失败的请求处理结果来执行下一步操作。
96.具体地,服务器对接口请求指定的接口的业务处理结果进行校验,生成请求处理结果并返回至发送对应接口请求的请求端。若请求处理结果为请求失败,服务器则在接收请求端针对事务重新发送的第一接口请求后,则返回执行在调用接口请求所指定的接口进行业务处理后,校验所生成的业务处理结果的步骤。
97.在一个实施例中,完成一个目标事务需要依次调用多个接口进行业务处理,若服务器调用到其中一个接口进行业务处理,生成业务处理结果并校验为处理失败,则将请求失败的请求处理结果返回至请求端。请求端接收到请求失败的请求处理结果,针对事务重新发送的第一接口请求至服务器。服务器接收请求端针对事务重新发送的第一接口请求后,则返回执行在调用接口请求所指定的接口进行业务处理后,校验所生成的业务处理结果的步骤。
98.比如,完成一个目标事务需要依次调用a、b和c这3个接口进行业务处理,那么,a接口即为第一个接口,调用a接口的接口请求则为第一接口请求。在调用a接口和b接口进行业务处理后、且业务处理结果为处理成功,但是服务器对第3个接口c的业务处理结果检验为处理失败,则将请求失败的请求处理结果返回至请求端。请求端接收到请求失败的请求处理结果,则可以针对目标事务重新发送第一接口请求(即用于调用a接口的接口请求)至服务器。服务器接收请求端针对事务重新发送的第一接口请求后,则可以重新调用接口a进行业务处理,即重新依次调用a、b和c这3个接口进行业务处理以完成目标事务。
99.在一个实施例中,请求端可以在发起第一个接口请求时,作上标识,以便服务器可以根据标识辨别接收到的接口请求是否为第一个接口请求。
100.本实施例中,通过告知请求端请求处理结果为请求失败,以接收请求端针对事务重新发送的第一接口请求,可以在有接口调用失败的情况下快速通知请求端重新发送第一接口请求,而不是下一接口请求,以满足多接口原子性操作的需求。
101.在一个实施例中,方法还包括:若请求处理结果为请求成功,则在接收请求端针对目标事务发送的下一个接口请求后,执行在调用接口请求所指定的接口进行业务处理后,
校验所生成的业务处理结果的步骤。
102.其中,下一个接口请求,是针对实现目标事务的下一个接口发送的接口请求。
103.具体地,服务器对接口请求指定的接口的业务处理结果进行校验,生成请求成功的请求处理结果并返回至发送对应接口请求的请求端。服务器在接收到请求端针对事务重新发送的下一个接口请求后,则返回执行在调用接口请求所指定的接口进行业务处理后,校验所生成的业务处理结果的步骤。
104.在一个实施例中,完成一个目标事务需要依次调用多个接口进行业务处理,若服务器调用到其中一个接口进行业务处理,生成业务处理结果并校验为处理成功,则将请求成功的请求处理结果返回至请求端。请求端接收到请求成功的请求处理结果,针对事务发送的下一个接口请求至服务器。服务器接收请求端针对事务发送的下一个接口请求后,执行在调用接口请求所指定的接口进行业务处理后,校验所生成的业务处理结果的步骤。
105.比如,完成一个目标事务需要依次调用a、b和c这3个接口进行业务处理,在a接口进行业务处理后、且业务处理结果校验为处理成功生成请求成功的请求处理结果,并将请求成功的请求处理结果返回至请求端。请求端接收到请求成功的请求处理结果,针对事务发送下一个接口请求(b接口请求)至服务器。服务器接收请求端针对事务发送下一个接口(b接口请求)请求后,执行在调用接口请求所指定的接口进行业务处理后,校验所生成的业务处理结果的步骤。
106.本实施例中,通过告知请求端请求处理结果为请求成功,以接收请求端针对事务发送的下一个接口请求,可以在接口调用成功的情况下快速通知请求端发送下一个接口请求,以提高实现目标事务的效率。
107.在一个实施例中,在校验用于实现目标事务的多个接口请求的业务处理结果皆为处理成功后,将临时存储器中存储的各业务处理结果和事务标识存储至正式存储器中包括:在校验针对目标事务的最后一个接口请求的业务处理结果为成功时,则将最后一个接口请求对应的业务处理结果、以及临时存储器中与事务标识关联的业务处理结果,在正式存储器中与事务标识关联存储。
108.其中,最后一个接口请求,是针对实现目标事务的最后一个接口发送的接口请求。
109.在一个实施例中,请求端可以在发起最后一个接口请求时,作上序号标识,以便服务器可以根据标识辨识接收到的接口请求是否为最后一个接口请求。
110.在一个实施例中,服务器对接收到的接口请求的序号标识进行辨识。当接收到的接口请求为最后一个接口请求、且在校验针对目标事务的最后一个接口请求的业务处理结果为成功时,服务器则将最后一个接口请求对应的业务处理结果、以及临时存储器中与事务标识关联的业务处理结果,在正式存储器中与事务标识关联存储。
111.本实施例中,通过对接口请求进行的序号标识,可以使服务器在获取到最后一个接口请求时、且在校验针对目标事务的最后一个接口请求的业务处理结果为成功时,将临时存储器中与事务标识关联的业务处理结果,在正式存储器中与事务标识关联存储,避免服务器无法判断何时应该将临时存储器中业务处理结果存储至正式存储器中,造成长时间的等待请求端发送下一个接口请求。
112.在一个实施例中,方法还包括:当接口请求为针对目标事务的第一接口请求时,生成目标事务的事务标识;若校验业务处理结果为处理成功,则将业务处理结果和目标事务
的事务标识关联存储至临时存储器中,包括:若校验第一接口请求的业务处理结果为处理成功,则将业务处理结果和生成的事务标识关联存储至临时存储器中。
113.在一个实施例中,请求端可以在发起第一个接口请求时,作上序号标识,以便服务器可以根据标识辨识接收到的接口请求是否为第一接口请求。
114.在一个实施例中,服务器对接收到的接口请求的序号标识进行辨识。当接收到的接口请求为针对目标事务的第一个接口请求时,服务器生成目标事务的事务标识。当接收到的接口请求为最后一个接口请求、且在校验针对目标事务的最后一个接口请求的业务处理结果为成功时,服务器则将最后一个接口请求对应的业务处理结果与事务标识关联存储至临时存储器中。
115.本实施例中,通过服务器生成目标事务的事务标识,对每一个目标事务所调用的接口的业务处理结果都与事务标识关联存储至临时存储器中,以便在对应于同一目标事务后续的接口的业务处理结果校验为处理失败时,查找到临时存储器中与事务标识关联的业务处理结果,有效执行回滚删除,确保目标事务的原子性。
116.在一个实施例中,方法还包括:向请求端返回生成的事务标识;若校验业务处理结果为处理成功,则将业务处理结果和目标事务的事务标识关联存储至临时存储器中,包括:若校验非第一接口请求的业务处理结果为处理成功,则将非第一接口请求的业务处理结果和非第一接口请求中携带的事务标识关联存储至临时存储器中。
117.具体地,服务请接口到请求端发送的第一接口请求后,得到对应于第一接口请求的业务处理结果,基于业务处理结果向请求端返回携带了事务标识的请求处理结果,并将非第一接口请求的业务处理结果和非第一接口请求中携带的事务标识关联存储至临时存储器中。
118.在一个实施例中,一个接口可以针对多个目标事务被调用,服务器可以通过接口请求携带的事务标识区分此次接口请求指定调用的接口是为了实现哪一个目标事务的。
119.在一个实施例中,服务器可以通过接口请求携带的事务标识将同一接口多次调用生成的针对不同目标事务的业务处理结果区分存储。
120.本实施例中,服务器通过向请求端返回生成的事务标识,可以有效区分此次接口请求指定调用的接口是为了实现哪一个目标事务的,以以便请求端在第二个接口请求以及后续的接口请求中携带上针对同一目标事务的事务标识,以便服务器辨别接收到的接口请求是哪一个目标事务的接口请求。
121.应该理解的是,虽然上述各个实施例的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,上述各个实施例的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
122.在一个实施例中,如图4所示,是一个实施例中接口请求处理方法流程简示图,现结合图4对该接口请求处理方法进行如下描述:
123.客户端发送第一个接口请求;服务端针对第一个接口请求对应的业务处理结果进
行校验;若校验成功,服务端则生成目标事务的事务标识,执行第一阶段业务处理结果提交,即,将事务标识与业务处理结果关联存储至临时存储器;服务端向客户端返回事务标识(事务id)和请求结果。其中,第一阶段,是把业务处理结果存储至临时存储器的阶段。
124.客户端接收服务器返回的请求处理结果;若请求失败,客户端结束目标事务;若请求成功,客户端向服务端发送携带事务标识的下一个接口请求;服务端针对接收下一个接口请求对应的业务处理结果进行校验;若校验成功,服务端则将事务标识与业务处理结果关联存储至临时存储器;若校验失败,服务端则执行回滚,清除临时存储器中与事务标识关联存储的业务处理结果;服务端向客户端返回事务标识和请求结果。
125.重复执行客户端接收服务器返回的请求处理结果,以及后续步骤,直到向服务端发送最后一个接口请求。
126.服务端针对最后一个接口请求对应的业务处理结果进行校验;若校验成功,执行第二阶段业务处理结果提交,即,将最后一个接口请求对应的业务处理结果、以及临时存储器中与所述事务标识关联的业务处理结果,与事务标识关联存储至正式存储器中;若校验失败,服务端则执行回滚,清除临时存储器中与事务标识关联存储的业务处理结果;服务端向客户端返回事务标识和请求结果。其中,第二阶段,是把业务处理结果存储至正式存储器的阶段。
127.在一个实施例中,如图5所示,提供了一种接口请求处理装置500,包括:接收模块502、校验模块504和存储模块506,其中:
128.接收模块502,用于接收针对目标事务的接口请求。
129.校验模块504,用于针对每个接口请求,在调用接口请求所指定的接口进行业务处理后,校验所生成的业务处理结果。
130.存储模块506,用于若校验业务处理结果为处理成功,则将业务处理结果和目标事务的事务标识关联存储至临时存储器中。
131.存储模块506,还用于在校验用于实现目标事务的多个接口请求的业务处理结果皆为处理成功后,将临时存储器中存储的各业务处理结果和事务标识存储至正式存储器中。
132.在一个实施例中,存储模块506,还用于若校验业务处理结果为处理失败,则执行回滚,以清除临时存储器中与事务标识关联存储的业务处理结果。
133.在一个实施例中,装置还包括:返回模块508,用于基于业务处理结果向请求端返回请求处理结果;校验模块504,还用于若请求处理结果为请求失败,则在接收请求端针对事务重新发送的第一接口请求后,则返回执行在调用接口请求所指定的接口进行业务处理后,校验所生成的业务处理结果的步骤;其中,第一接口请求,是针对实现目标事务的第一个接口发送的接口请求。
134.在一个实施例中,校验模块504,还用于若请求处理结果为请求成功,则在接收请求端针对目标事务发送的下一个接口请求后,执行在调用接口请求所指定的接口进行业务处理后,校验所生成的业务处理结果的步骤。
135.在一个实施例中,存储模块508,还用于在校验针对目标事务的最后一个接口请求的业务处理结果为成功时,则将最后一个接口请求对应的业务处理结果、以及临时存储器中与事务标识关联的业务处理结果,在正式存储器中与事务标识关联存储。
136.如图6所示,在一个实施例中,该装置还包括:返回模块508和生成模块510;生成模块510,用于当接口请求为针对目标事务的第一接口请求时,生成目标事务的事务标识;校验模块504,还用于若校验第一接口请求的业务处理结果为处理成功,则将业务处理结果和生成的事务标识关联存储至临时存储器中。
137.在一个实施例中,返回模块508,还用于向请求端返回生成的事务标识;存储模块506,还用于若校验非第一接口请求的业务处理结果为处理成功,则将非第一接口请求的业务处理结果和非第一接口请求中携带的事务标识关联存储至临时存储器中。
138.关于接口请求处理装置的具体限定可以参见上文中对于接口请求处理方法的限定,在此不再赘述。上述接口请求处理装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
139.在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图7所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储接口请求处理数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种接口请求处理方法。
140.在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图8所示。该计算机设备包括通过系统总线连接的处理器、存储器、通信接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过wifi、运营商网络、nfc(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种接口请求处理方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
141.本领域技术人员可以理解,图7
‑
图8中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
142.在一个实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
143.在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
144.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机
可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(read
‑
only memory,rom)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(random access memory,ram)或外部高速缓冲存储器。作为说明而非局限,ram可以是多种形式,比如静态随机存取存储器(static random access memory,sram)或动态随机存取存储器(dynamic random access memory,dram)等。
145.以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
146.以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。