[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

CN115277857A - 用于接口验证的方法、装置、电子设备及存储介质 - Google Patents

用于接口验证的方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN115277857A
CN115277857A CN202210899391.XA CN202210899391A CN115277857A CN 115277857 A CN115277857 A CN 115277857A CN 202210899391 A CN202210899391 A CN 202210899391A CN 115277857 A CN115277857 A CN 115277857A
Authority
CN
China
Prior art keywords
service
service identifier
interface
identifier
verification
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
CN202210899391.XA
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
ICBC Technology Co Ltd
Original Assignee
Industrial and Commercial Bank of China Ltd ICBC
ICBC Technology 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 Industrial and Commercial Bank of China Ltd ICBC, ICBC Technology Co Ltd filed Critical Industrial and Commercial Bank of China Ltd ICBC
Priority to CN202210899391.XA priority Critical patent/CN115277857A/zh
Publication of CN115277857A publication Critical patent/CN115277857A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/321Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority
    • H04L9/3213Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority using tickets or tokens, e.g. Kerberos

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Stored Programmes (AREA)

Abstract

本公开提供了一种用于接口验证的方法、装置、电子设备及存储介质,可以应用于计算机技术领域。该用于接口验证的方法包括:响应于来自客户端的业务请求,调用业务接口,其中,业务请求中包括第一业务标识;根据第一业务标识,确定业务接口的幂等性验证结果;在确定幂等性验证结果用于表征成功的情况下,删除第二业务标识,其中,第二业务标识存储在服务端且与第一业务标识对应;在确定第二业务标识删除成功的情况下,执行业务请求。

Description

用于接口验证的方法、装置、电子设备及存储介质
技术领域
本公开涉及计算机技术领域,更具体地,涉及一种用于接口验证的方法、装置、电子设备、存储介质及计算机程序产品。
背景技术
当遇到网络波动、以及重复点击等情况时可能会造成正在执行的操作产生重复数据,从而出现一些页面错误、重复支付等情况,随着互联网时代的飞速发展,人们对互联网的要求也在不断提高,需要确保操作的幂等性。幂等性是指用户对某一操作发起了一次或者多次请求,对数据的影响是一致不变的,不会因为多次请求产生副作用。
在实现本公开构思的过程中,发明人发现相关技术中至少存在如下问题:在通过例如分布式锁验证幂等性的方案逻辑复杂,效率较低。
发明内容
有鉴于此,本公开提供了一种用于接口验证的方法、装置、电子设备、存储介质及计算机程序产品。
本公开的一个方面提供了一种用于接口验证的方法,包括:
响应于来自客户端的业务请求,调用业务接口,其中,业务请求中包括第一业务标识;
根据第一业务标识,确定业务接口的幂等性验证结果;
在确定幂等性验证结果用于表征成功的情况下,删除第二业务标识,其中,第二业务标识存储在服务端且与第一业务标识对应;
在确定第二业务标识删除成功的情况下,执行业务请求。
根据本公开的实施例,在响应于来自客户端的业务请求,调用业务接口之前,还包括:
基于客户端的业务信息,生成业务标识;
将业务标识发送至客户端,得到第一业务标识;以及
将业务标识存储至服务端中,得到第二业务标识。
根据本公开的实施例,其中,根据第一业务标识,确定业务接口的幂等性验证结果,包括:
在确定业务接口需要进行幂等性验证的情况下,识别第一自定义注解;
确定与第一自定义注解对应的验证指令;
基于验证指令,识别服务端是否存储与第一业务标识对应的第二业务标识,得到识别结果;
基于识别结果,确定业务接口的幂等性验证结果。
根据本公开的实施例,其中,在确定第二业务标识删除成功的情况下,执行业务请求,包括:
在确定第二业务标识删除成功的情况下,识别第二自定义注解;
确定与第二自定义注解对应的业务指令;
基于业务指令,执行业务请求。
根据本公开的实施例,上述用于接口验证的方法还包括:
在确定幂等性验证结果用于表征失败的情况下,结束执行业务请求。
根据本公开的实施例,其中,验证指令通过Lua脚本实现。
本公开的另一个方面提供了一种用于接口幂等性的装置,包括:
调用模块,用于响应于来自客户端的业务请求,调用业务接口,其中,业务请求中包括第一业务标识;
确定模块,用于根据第一业务标识,确定业务接口的幂等性验证结果;
删除模块,用于在确定幂等性验证结果用于表征成功的情况下,删除第二业务标识,其中,第二业务标识存储在服务端且与第一业务标识对应;
执行模块,用于在确定第二业务标识删除成功的情况下,执行业务请求。
本公开的另一方面提供了一种电子设备,包括:一个或多个处理器;存储器,用于存储一个或多个程序,其中,当上述一个或多个程序被上述一个或多个处理器执行时,使得上述一个或多个处理器实现如上所述的用于接口验证的方法。
本公开的另一方面提供了一种计算机可读存储介质,存储有计算机可执行指令,所述指令在被执行时用于实现如上所述的用于接口验证的方法。
本公开的另一方面提供了一种计算机程序产品,所述计算机程序产品包括计算机可执行指令,所述指令在被执行时用于实现如上所述的用于接口验证的方法。
根据本公开的实施例,通过响应于来自客户端的业务请求,调用业务接口,然后根据业务请求中的第一业务标识,确定业务接口的幂等性验证结果,在幂等性验证结果用于表征成功的情况下,删除第二业务标识,然后在确定所述第二业务标识删除成功的情况下,执行所述业务请求,不需要对业务逻辑加锁,简化代码的复杂程度,所以至少部分克服了在通过例如分布式锁验证幂等性的方案逻辑复杂,效率较低的技术问题。
附图说明
通过以下参照附图对本公开实施例的描述,本公开的上述以及其他目的、特征和优点将更为清楚,在附图中:
图1示意性示出了根据本公开实施例的可以应用于接口验证的方法的示例性系统架构;
图2示意性示出了根据本公开实施例的用于接口验证的方法的流程图;
图3示意性示出了根据本公开实施例的用于接口验证的客户端和服务端交互方法流程图;
图4示意性示出了根据本公开的实施例的用于接口验证的装置的框图;以及
图5示意性示出了根据本公开实施例的适于实现上文描述的用于接口验证的方法的电子设备的框图。
具体实施方式
以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
在使用类似于“A、B和C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B和C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。在使用类似于“A、B或C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B或C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。
在本公开的技术方案中,所涉及的用户个人信息的获取,存储和应用等,均符合相关法律法规的规定,采取了必要保密措施,且不违背公序良俗。
在一种实施方式中,可以通过分布式锁结合token实现幂等性,具体方式可以参照如下:第一步,在发生多个请求的情况下,会获得分布式锁;第二步,判断服务端的缓存中是否存在请求中携带的token;第三步,如果存在,将缓存中token删除再执行相关的业务逻辑;最后释放分布式锁。在第二步和第三步的过程中,需要通过分布式锁锁定执行的业务逻辑,这个过程会降低代码的并发性增大系统开销,同时需要入侵业务逻辑,增加了代码的逻辑复杂度。
在另一种实施方式中,还可以利用数据库的乐观锁机制实现幂等性。当预期与判断一致时执行后续操作,否则返回失败,通过乐观锁实现幂等性需要频繁的查询、更新数据库,降低了程序的并发性,效率较低。
有鉴于此,本公开的实施例提供了一种用于接口验证的方法。该方法包括响应于来自客户端的业务请求,调用业务接口,其中,业务请求中包括第一业务标识;根据第一业务标识,确定业务接口的幂等性验证结果;在确定幂等性验证结果用于表征成功的情况下,删除第二业务标识,其中,第二业务标识存储在服务端且与第一业务标识对应;在确定第二业务标识删除成功的情况下,执行业务请求。
根据本公开的实施例,通过响应于来自客户端的业务请求,调用业务接口,然后根据业务请求中的第一业务标识,确定业务接口的幂等性验证结果,在幂等性验证结果用于表征成功的情况下,删除第二业务标识,然后在确定所述第二业务标识删除成功的情况下,执行所述业务请求,不需要对业务逻辑加锁,简化代码的复杂程度,所以至少部分克服了在通过例如分布式锁验证幂等性的方案逻辑复杂,效率较低的技术问题。
图1示意性示出了根据本公开实施例的可以应用于接口验证的方法的示例性系统架构100。需要注意的是,图1所示仅为可以应用本公开实施例的系统架构的示例,以帮助本领域技术人员理解本公开的技术内容,但并不意味着本公开实施例不可以用于其他设备、系统、环境或场景。
如图1所示,根据该实施例的系统架构100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线和/或无线通信链路等等。
用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端和/或社交平台软件等(仅为示例)。
终端设备101、102、103可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器105可以是提供各种服务的服务器,例如对用户利用终端设备101、102、103所浏览的网站提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的用户请求等数据进行分析等处理,并将处理结果(例如根据用户请求获取或生成的网页、信息、或数据等)反馈给终端设备。
需要说明的是,本公开实施例所提供的用于接口验证的方法一般可以由服务器105执行。相应地,本公开实施例所提供的用于接口验证的系统一般可以设置于服务器105中。本公开实施例所提供的用于接口验证的方法也可以由不同于服务器105且能够与终端设备101、102、103和/或服务器105通信的服务器或服务器集群执行。相应地,本公开实施例所提供的用于接口验证的装置也可以设置于不同于服务器105且能够与终端设备101、102、103和/或服务器105通信的服务器或服务器集群中。
例如,第一业务标识可以原本存储在终端设备101、102、或103中的任意一个(例如,终端设备101,但不限于此)之中,或者存储在外部存储设备上并可以导入到终端设备101中。或者第一业务标识发送到其他服务器、或服务器集群,并由接收该第一业务标识的其他服务器、或服务器集群来执行本公开实施例所提供的用于接口验证的方法。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
图2示意性示出了根据本公开实施例的用于接口验证的方法的流程图。
如图2所示,该方法包括操作S201~S204。
在操作S201,响应于来自客户端的业务请求,调用业务接口,其中,业务请求中包括第一业务标识。
根据本公开的实施例,客户端可以是安装在终端设备的各种应用软件,用户可以通过客户端实现转账、购物、数据分析等功能。
根据本公开的实施例,业务请求可以是用户在客户端发起的转账业务请求、购物业务请求或者数据分析业务请求,也可以是其他的业务请求,在此不做限定。业务请求中可以包括第一业务标识,第一业务标识可以是用于识别业务请求的标识。
根据本公开的实施例,业务接口可以是接收业务请求的接口。可以通过预先设置的程序代码调用业务接口。
在操作S202,根据第一业务标识,确定业务接口的幂等性验证结果。
根据本公开的实施例,可以由第一业务标识确定业务请求是否首次调用业务接口,从而确定业务接口的幂等性验证结果。如果业务请求是首次调用业务接口,则幂等性验证结果为成功;如果业务请求是不是首次调用业务接口,则幂等性验证结果为失败。
在操作S203,在确定幂等性验证结果用于表征成功的情况下,删除第二业务标识,其中,第二业务标识存储在服务端且与第一业务标识对应。
根据本公开的实施例,第二业务标识可以是用于识别业务请求的标识,同时通过确定服务端存储第二业务标识的情况下,可以确定业务请求是首次调用业务接口,以及通过确定服务端没有存储第二业务标识的情况下,可以确定业务请求不是首次调用业务接口。
根据本公开的实施例,幂等性验证结果用于表征成功的情况下,也就是业务请求为首次调用业务接口,也就是服务端存储有与第一业务标识对应的第二业务标识,删除第二业务标识。当服务端没有第二业务标识的情况下,可以确定业务请求不是首次调用业务接口。
在操作S204,在确定第二业务标识删除成功的情况下,执行业务请求。
根据本公开的实施例,在确定幂等性验证结果以及删除第二业务标识的操作均成功的情况下,执行业务请求。
图3示意性示出了根据本公开实施例的用于接口验证的客户端和服务端交互方法流程图。
如图3所示,该方法包括操作S301~操作S309。
在操作S301,根据客户端的信息生成业务标识。
在操作S302,向客户端发送业务标识,得到第一业务标识。
在操作S303,在缓存中保存业务标识,得到第二业务标识。
在操作S304,提交业务请求。
在操作S305,调用业务接口,然后通过业务请求中包括的第一业务标识,确定服务端是否存储对应的第二业务标识,若存在,执行操作S306,若不存在,执行操作S309。
在操作S306,删除第二业务标识。
在操作S307,执行业务申请。
在操作S308,返回执行结果。
在操作S309,结束执行所述业务请求。
例如,用户A在客户端B准备发起转账,服务端C根据客户端B的信息生成业务标识token,服务端C可以将业务标识token发送至客户端B得到第一业务标识token1、以及保存到缓存得到第二业务标识token2,然后,用户A在客户端B提交了包括的第一业务标识token1的转账业务申请X,通过响应于业务申请X,服务端C可以调用业务接口,然后通过第一业务标识token1,确定服务端C是否存储有对应的第二业务标识token2。若确定服务端存储有第二业务标识token2,就可以确定业务申请X的幂等性验证通过,将服务端存储的第二业务标识token2删除并执行业务申请X;如果业务请求X再次请求业务接口,由于服务端没有存储第二业务标识token2,就可以确定业务申请X的幂等性验证没有通过。
根据本公开的实施例,通过响应于来自客户端的业务请求,调用业务接口,然后根据业务请求中的第一业务标识,确定业务接口的幂等性验证结果,在幂等性验证结果用于表征成功的情况下,删除第二业务标识,然后在确定所述第二业务标识删除成功的情况下,执行所述业务请求,不需要对业务逻辑加锁,简化代码的复杂程度,所以至少部分克服了在通过例如分布式锁验证幂等性的方案逻辑复杂,效率较低的技术问题。
根据本公开的实施例,在响应于来自客户端的业务请求,调用业务接口之前,还包括:
基于客户端的业务信息,生成业务标识;
将业务标识发送至客户端,得到第一业务标识;以及
将业务标识存储至服务端中,得到第二业务标识。
根据本公开的实施例,客户端的业务信息可以是用户在客户端进行操作时的信息。例如,当用户在客户端提交转账的业务请求时,可以获取用户当前转账账户的身份信息,生成业务标识。可以将业务标识发送到客户端,得到第一业务标识,以及将业务标识存储至服务端中,得到第二业务标识。
根据本公开的实施例,通过业务信息生成业务标识,分别得到第一业务标识和第二业务标识,可以准确的判断业务接口的幂等性。
根据本公开的实施例,其中,根据第一业务标识,确定业务接口的幂等性验证结果,包括:
在确定业务接口需要进行幂等性验证的情况下,识别第一自定义注解;
确定与第一自定义注解对应的验证指令;
基于验证指令,识别服务端是否存储与第一业务标识对应的第二业务标识,得到识别结果;
基于识别结果,确定业务接口的幂等性验证结果。
根据本公开的实施例,从Java(面向对象的编程语言)开发工具包1.5(JavaDevelopment kit 1.5,JDK1.5)开始,Java增加对元数据的支持,可以对具有相同特点的类、方法、变量做标记,从而实现注解的功能。
根据本公开的实施例,第一自定义注解可以是验证幂等性代码的注解,验证指令可以是验证幂等性的指令。通过识别第一自定义注解,可以准确的获取验证幂等性的验证指令,从而根据验证指令确定业务接口的幂等性。
根据本公开的实施例,验证指令在执行时,可以是通过识别服务端是否存储第二业务标识,在确定服务端存储第二业务标识的情况下,可以确定业务接口为首次调用,则确定幂等性验证结果为成功;在确定服务端没有存储第二业务标识的情况下,可以确定业务接口不是首次调用,则确定幂等性验证结果为失败。
根据本公开的实施例,通过第一自定义注解,在幂等性验证的过程可以快速的识别验证指令,不用入侵业务代码,降低代码的阅读难度,降低了代码的复杂度,提高了运维效率。
根据本公开的实施例,其中,在确定第二业务标识删除成功的情况下,执行业务请求,包括:
在确定第二业务标识删除成功的情况下,识别第二自定义注解;
确定与第二自定义注解对应的业务指令;
基于业务指令,执行业务请求。
根据本公开的实施例,第二自定义注解可以是执行业务请求代码的注解,业务指令可以是执行业务请求的指令。通过识别第二自定义注解,可以准确的获取执行业务请求的业务指令,从而执行业务请求。
根据本公开的实施例,通过第二自定义注解,可以快速识别业务指令,提高了业务处理的效率。
根据本公开的实施例,上述用于接口验证的方法还包括:
在确定幂等性验证结果用于表征失败的情况下,结束执行业务请求。
根据本公开的实施例,在幂等性验证结果失败的情况下,也就是服务端没有存储第二业务标识的情况下,可以确定业务接口不是首次调用,就可以结束执行业务请求。
根据本公开的实施例,在幂等性验证结果失败的情况下,结束业务请求,确保业务请求只执行一次,避免业务请求被多次执行。
根据本公开的实施例,其中,验证指令通过Lua脚本实现。
根据本公开的实施例,Lua脚本是一种脚本语言,其具有原子特性,是指在一个业务请求执行的过程中,全部操作要么全部被执行,要么全部不被执行。例如,在用户A向用户B转账的情况下,用户A的账户资金减少的同时,用户B的账户资金也会相应增加,不会出现用户A的账户资金减少了,而用户B的账户资金却没有相应增加的情况。
根据本公开的实施例,Lua脚本可以很方便的嵌入客户端中,为客户端提供灵活的扩展和定制功能,并且,通过Lua脚本可以在不需要加锁和释放锁的情况下实现对业务接口的幂等性验证,降低了代码的复杂程度。
图4示意性示出了根据本公开的实施例的用于接口验证的装置的框图。
如图4所示,用于接口验证的装置400包括调用模块410、确定模块420、删除模块430和执行模块440。
调用模块410,用于响应于来自客户端的业务请求,调用业务接口,其中,业务请求中包括第一业务标识;
确定模块420,用于根据第一业务标识,确定业务接口的幂等性验证结果;
删除模块430,用于在确定幂等性验证结果用于表征成功的情况下,删除第二业务标识,其中,第二业务标识存储在服务端且与第一业务标识对应;
执行模块440,用于在确定第二业务标识删除成功的情况下,执行业务请求。
根据本公开的实施例,通过响应于来自客户端的业务请求,调用业务接口,然后根据业务请求中的第一业务标识,确定业务接口的幂等性验证结果,在幂等性验证结果用于表征成功的情况下,删除第二业务标识,然后在确定所述第二业务标识删除成功的情况下,执行所述业务请求,不需要对业务逻辑加锁,简化代码的复杂程度,所以至少部分克服了在通过例如分布式锁验证幂等性的方案逻辑复杂,效率较低的技术问题。
根据本公开的实施例,用于接口验证的装置400还包括:生成模块、第一得到模块和第二得到模块。
生成模块,用于在响应于来自客户端的业务请求,调用业务接口之前基于客户端的业务信息,生成业务标识;
第一得到模块,用于将业务标识发送至客户端,得到第一业务标识;以及
第二得到模块,用于将业务标识存储至服务端中,得到第二业务标识。
根据本公开的实施例,其中,用于根据第一业务标识,确定业务接口的幂等性验证结果的确定模块420包括第一确定单元、第二确定单元、第三确定单元和第四确定单元。
第一确定单元,用于在确定业务接口需要进行幂等性验证的情况下,识别第一自定义注解;
第二确定单元,用于确定与第一自定义注解对应的验证指令;
第三确定单元,用于基于验证指令,识别服务端是否存储与第一业务标识对应的第二业务标识,得到识别结果;
第四确定单元,用于基于识别结果,确定业务接口的幂等性验证结果。
根据本公开的实施例,其中,用于在确定第二业务标识删除成功的情况下,执行业务请求的执行模块440包括第一执行单元、第二执行单元和第三执行单元。
第一执行单元,用于在确定第二业务标识删除成功的情况下,识别第二自定义注解;
第二执行单元,用于确定与第二自定义注解对应的业务指令;
第三执行单元,用于基于业务指令,执行业务请求。
根据本公开的实施例,用于接口验证的装置400还包括结束模块。
结束模块,用于在确定幂等性验证结果用于表征失败的情况下,结束执行业务请求。
根据本公开的实施例,其中,验证指令通过Lua脚本实现。
根据本公开的实施例的模块、子模块、单元、子单元中的任意多个、或其中任意多个的至少部分功能可以在一个模块中实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以被拆分成多个模块来实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式的硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,根据本公开实施例的模块、子模块、单元、子单元中的一个或多个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
例如,调用模块410、确定模块420、删除模块430和执行模块440中的任意多个可以合并在一个模块/单元/子单元中实现,或者其中的任意一个模块/单元/子单元可以被拆分成多个模块/单元/子单元。或者,这些模块/单元/子单元中的一个或多个模块/单元/子单元的至少部分功能可以与其他模块/单元/子单元的至少部分功能相结合,并在一个模块/单元/子单元中实现。根据本公开的实施例,调用模块410、确定模块420、删除模块430和执行模块440中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,调用模块410、确定模块420、删除模块430和执行模块440中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
需要说明的是,本公开的实施例中用于接口验证的装置部分与本公开的实施例中用于接口验证的方法部分是相对应的,用于接口验证的装置部分的描述具体参考用于接口验证的方法部分,在此不再赘述。
图5示意性示出了根据本公开实施例的适于实现上文描述的用于接口验证的方法的电子设备的框图。图5示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图5所示,根据本公开实施例的电子设备500包括处理器501,其可以根据存储在只读存储器(ROM)502中的程序或者从存储部分508加载到随机访问存储器(RAM)503中的程序而执行各种适当的动作和处理。处理器501例如可以包括通用微处理器(例如CPU)、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC)),等等。处理器501还可以包括用于缓存用途的板载存储器。处理器501可以包括用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
在RAM 503中,存储有电子设备400操作所需的各种程序和数据。处理器501、ROM502以及RAM 503通过总线504彼此相连。处理器501通过执行ROM 502和/或RAM 503中的程序来执行根据本公开实施例的方法流程的各种操作。需要注意,所述程序也可以存储在除ROM502和RAM 503以外的一个或多个存储器中。处理器501也可以通过执行存储在所述一个或多个存储器中的程序来执行根据本公开实施例的方法流程的各种操作。
根据本公开的实施例,电子设备400还可以包括输入/输出(I/O)接口505,输入/输出(I/O)接口505也连接至总线504。系统400还可以包括连接至I/O接口505的以下部件中的一项或多项:包括键盘、鼠标等的输入部分506;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分507;包括硬盘等的存储部分508;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分509。通信部分509经由诸如因特网的网络执行通信处理。驱动器510也根据需要连接至I/O接口505。可拆卸介质511,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器510上,以便于从其上读出的计算机程序根据需要被安装入存储部分508。
根据本公开的实施例,根据本公开实施例的方法流程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读存储介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分509从网络上被下载和安装,和/或从可拆卸介质511被安装。在该计算机程序被处理器501执行时,执行本公开实施例的系统中限定的上述功能。根据本公开的实施例,上文描述的系统、设备、装置、模块、单元等可以通过计算机程序模块来实现。
本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/系统中所包含的;也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的方法。
根据本公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质。例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
例如,根据本公开的实施例,计算机可读存储介质可以包括上文描述的ROM 502和/或RAM 503和/或ROM 502和RAM 503以外的一个或多个存储器。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合,即使这样的组合或结合没有明确记载于本公开中。特别地,在不脱离本公开精神和教导的情况下,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本公开的范围。
以上对本公开的实施例进行了描述。但是,这些实施例仅仅是为了说明的目的,而并非为了限制本公开的范围。尽管在以上分别描述了各实施例,但是这并不意味着各个实施例中的措施不能有利地结合使用。本公开的范围由所附权利要求及其等同物限定。不脱离本公开的范围,本领域技术人员可以做出多种替代和修改,这些替代和修改都应落在本公开的范围之内。

Claims (10)

1.一种用于接口验证的方法,包括:
响应于来自客户端的业务请求,调用业务接口,其中,所述业务请求中包括第一业务标识;
根据所述第一业务标识,确定所述业务接口的幂等性验证结果;
在确定所述幂等性验证结果用于表征成功的情况下,删除第二业务标识,其中,所述第二业务标识存储在服务端且与所述第一业务标识对应;
在确定所述第二业务标识删除成功的情况下,执行所述业务请求。
2.根据权利要求1所述的方法,在所述响应于来自客户端的业务请求,调用业务接口之前,还包括:
基于所述客户端的业务信息,生成业务标识;
将所述业务标识发送至所述客户端,得到所述第一业务标识;以及
将所述业务标识存储至所述服务端中,得到所述第二业务标识。
3.根据权利要求1所述的方法,其中,所述根据所述第一业务标识,确定所述业务接口的幂等性验证结果,包括:
在确定所述业务接口需要进行幂等性验证的情况下,识别第一自定义注解;
确定与所述第一自定义注解对应的验证指令;
基于所述验证指令,识别所述服务端是否存储与所述第一业务标识对应的所述第二业务标识,得到识别结果;
基于所述识别结果,确定所述业务接口的幂等性验证结果。
4.根据权利要求1至3中任一项所述的方法,其中,所述在确定所述第二业务标识删除成功的情况下,执行所述业务请求,包括:
在确定所述第二业务标识删除成功的情况下,识别第二自定义注解;
确定与所述第二自定义注解对应的业务指令;
基于所述业务指令,执行所述业务请求。
5.根据权利要求1至3中任一项所述的方法,还包括:
在确定所述幂等性验证结果用于表征失败的情况下,结束执行所述业务请求。
6.根据权利要求3所述的方法,其中,所述验证指令通过Lua脚本实现。
7.一种用于接口幂等性的装置,包括:
调用模块,用于响应于来自客户端的业务请求,调用业务接口,其中,所述业务请求中包括第一业务标识;
确定模块,用于根据所述第一业务标识,确定所述业务接口的幂等性验证结果;
删除模块,用于在确定所述幂等性验证结果用于表征成功的情况下,删除第二业务标识,其中,所述第二业务标识存储在服务端且与所述第一业务标识对应;
执行模块,用于在确定所述第二业务标识删除成功的情况下,执行所述业务请求。
8.一种电子设备,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序,
其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现权利要求1至6中任一项所述的方法。
9.一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器实现权利要求1至6中任一项所述的方法。
10.一种计算机程序产品,所述计算机程序产品包括计算机可执行指令,所述计算机可执行指令在被执行时用于实现权利要求1至6中任一项所述的方法。
CN202210899391.XA 2022-07-28 2022-07-28 用于接口验证的方法、装置、电子设备及存储介质 Pending CN115277857A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210899391.XA CN115277857A (zh) 2022-07-28 2022-07-28 用于接口验证的方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210899391.XA CN115277857A (zh) 2022-07-28 2022-07-28 用于接口验证的方法、装置、电子设备及存储介质

Publications (1)

Publication Number Publication Date
CN115277857A true CN115277857A (zh) 2022-11-01

Family

ID=83771479

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210899391.XA Pending CN115277857A (zh) 2022-07-28 2022-07-28 用于接口验证的方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN115277857A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN118469714A (zh) * 2024-07-11 2024-08-09 宁波银行股份有限公司 一种交易数据处理方法、装置及电子设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110740163A (zh) * 2019-09-04 2020-01-31 无锡华云数据技术服务有限公司 幂等性控制方法、装置、电子设备及可读存储介质
US20200134043A1 (en) * 2018-10-31 2020-04-30 Western Digital Technologies, Inc. Duplicate Request Checking for File System Interfaces
CN111459575A (zh) * 2020-03-31 2020-07-28 中国银行股份有限公司 调用请求的处理方法、装置和计算机存储介质
CN112035118A (zh) * 2020-08-28 2020-12-04 江苏徐工信息技术股份有限公司 一种基于注解自动实现接口幂等的方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200134043A1 (en) * 2018-10-31 2020-04-30 Western Digital Technologies, Inc. Duplicate Request Checking for File System Interfaces
CN110740163A (zh) * 2019-09-04 2020-01-31 无锡华云数据技术服务有限公司 幂等性控制方法、装置、电子设备及可读存储介质
CN111459575A (zh) * 2020-03-31 2020-07-28 中国银行股份有限公司 调用请求的处理方法、装置和计算机存储介质
CN112035118A (zh) * 2020-08-28 2020-12-04 江苏徐工信息技术股份有限公司 一种基于注解自动实现接口幂等的方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
AARON ZHU: ""浅谈接口幂等性设计"", 《HTTPS://ZHUANLAN.ZHIHU.COM/P/496201515》, pages 1 - 3 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN118469714A (zh) * 2024-07-11 2024-08-09 宁波银行股份有限公司 一种交易数据处理方法、装置及电子设备

Similar Documents

Publication Publication Date Title
CN109710695B (zh) 事务请求有效性识别和发起方法、装置、设备和介质
CN113946425A (zh) 业务处理方法及装置、电子设备和计算机可读存储介质
CN111598575A (zh) 业务流程控制方法、装置、电子设备和可读存储介质
CN115102744B (zh) 数据访问方法和装置
CN110070360B (zh) 一种事务请求处理方法、装置、设备及存储介质
US12120095B2 (en) Deploying and utilizing a dynamic data stenciling system with a smart linking engine
CN113572763B (zh) 数据处理方法、装置、电子设备及存储介质
CN113132400B (zh) 业务处理方法、装置、计算机系统及存储介质
CN115277857A (zh) 用于接口验证的方法、装置、电子设备及存储介质
CN107657155B (zh) 用于鉴定用户操作权限的方法和装置
CN113176907A (zh) 接口数据调用方法、装置、计算机系统及可读存储介质
CN110659897A (zh) 交易验证的方法、系统、计算设备和介质
CN113535565B (zh) 一种接口用例生成方法、装置、设备和介质
CN112115738A (zh) 一种应用于浏览器端的图像识别方法和装置
CN110968497A (zh) 基于树形拦截器的请求校验方法、装置、介质及电子设备
US20240031166A1 (en) Web-side data signature method and apparatus and computer device
CN113918525A (zh) 数据交换调度方法、系统、电子设备、介质及程序产品
CN111859403A (zh) 依赖关系漏洞的确定方法、装置、电子设备及存储介质
CN113781154A (zh) 一种信息回滚方法、系统、电子设备及存储介质
CN113641966B (zh) 一种应用集成方法、系统、设备及介质
CN116452208B (zh) 变更交易码的确定方法、装置、设备及介质
CN115658186A (zh) 接口调用方法及装置、电子设备和计算机可读存储介质
CN118520001A (zh) 一种方法运行幂等性验证方法、系统、终端及存储介质
CN117555585A (zh) 资源独占的版本管理方法、装置、设备及存储介质
CN116302405A (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