System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及应用程序编程接口管理领域,尤其涉及一种api调用方法、装置及可读存储介质。
技术介绍
1、当前,应用程序编程接口(application programming interface,api)调用主要通过超文本传输协议(hypertext transfer protocol,http)的get请求实现。api的参数(例如,要查询的条件,特定的标识)的值是以字符串的形式添加在get请求中的统一资源定位符(uniform resource locator,url)字段中。例如,一个包括url字段的get请求为:https://example.com/api?param1=value1¶m2=value2,其中,param1和param2是api的参数的参数名称,value1和value2是api的参数的值。
2、由于get请求中的参数为api提供了具体的操作指令或者数据,以使api能够根据这些参数执行相应的操作并返回合适的结果,为了保证api正常准确的调用,需要对参数的类型等进行验证。但是,当前,服务器在接收到上述请求后,无法实时对参数进行验证,在某个参数错误而导致api调用失败的情况下,服务器只能给用户返回一个通用的错误信息,无法提供一个准确的反馈,导致用户无法及时发现和纠正错误,从而影响api调用的准确性和效率。
技术实现思路
1、本申请公开了一种api调用方法、装置及可读存储介质,通过在接收到用户设备发送的api调用请求的情况下,根据存储的目标
2、第一方面,本申请提供了一种api调用方法,该方法包括:接收用户设备发送的调用第一api的第一请求;根据从存储的第一api对应的第一api代码中提取的参数信息确定参数检验模型,并根据参数检验模型,对第一请求包括的第一参数信息进行校验,其中,参数信息包括至少一个参数名称,和至少一个参数名称中的每个参数名称对应的参数类型,参数格式以及参数范围中的一种或者多种;在确定第一参数信息存在异常的情况下,将第一错误响应发送给用户设备,第一错误响应用于指示第一参数信息中的第一异常参数信息,包括参数类型错误、参数格式错误或者参数范围错误中的一个或者多个。
3、上述过程中,服务器在接收到用户设备发送的调用api的请求的情况下,可以及时对请求中的参数进行校验,由于本申请中服务器中存储有多个api各自对应的api代码,例如,python代码等,在根据请求确定目标api对应的api代码后,根据api代码中的参数定义确定包括的至少一个参数名称、参数类型、参数格式以及参数范围等内容,根据上述内容生成参数检验模型,以用于请求中的参数校验,可以确定具体的参数错误,例如,参数类型错误等,可以使得用户设备确定具体的参数错误及时进行修改等操作,并且防止参数不匹配造成的api调用失败的情况的发生,服务器在异常情况下仍能保持稳定运行,提升api调用的准确性和效率。
4、示例性地,该方法还包括:在确定第一参数信息不存在异常的情况下,根据第一请求包括的第一api信息,确定存储的第一api对应的第一缓存文件,其中,第一api信息包括所属平台、类别、工具名称、api名称及调用参数;根据第一参数信息,确定第一缓存文件中是否存在第一响应结果,第一响应结果是第一api根据第一参数信息进行处理得到的;在第一缓存文件中存在第一响应结果的情况下,将第一响应结果发送给用户设备。
5、本申请中,服务器中缓存多个api调用结果,在请求中的参数正常的情况下,先在缓存结果中查找目标api的缓存文件,并根据请求中的第一参数信息确定缓存中对应的响应结果,通过缓存机制,可以显著减少重复调用外部接口的次数以及时间,在高并发场景下可以提升响应速度,以及服务器的性能。
6、示例性地,该方法还包括:在第一缓存文件中不存在第一响应结果的情况下,根据第一api信息,确定存储的第一api对应的第一api代码;在第一api为第三方服务提供的接口的情况下,根据第一参数信息以及第一api代码,与网络设备建立连接,网络设备包括多个api,第一api是多个api中的任一个;在接收到网络设备根据第一api以及第一参数信息确定的第一返回结果的情况下,根据第一返回结果确定第二响应结果,并将第二响应结果发送给用户设备,其中,第二响应结果与第一响应结果相同,第一返回结果与第二响应结果的格式不同。
7、本申请中,服务器中存储有多来源的多个api各自对应的api代码,通过api代码调用api,相较于当前用户设备直接调用api的方法,不需要深入了解api的底层实现细节和复杂的调用方式,根据统一的接口代码实现操作,降低了使用难度,提升了api调用的效率和准确性。
8、示例性地,该方法还包括:在未接收到第一返回结果,接收到网络设备发送的返回失败信息的情况下,重新确定第一api对应的第二api代码,返回失败信息用于指示第一api不存在或者第一参数信息包括的参数不存在;在第一api为第三方服务提供的接口的情况下,根据第一参数信息以及第二api代码,与网络设备建立连接;在接收到网络设备根据第一api以及第一参数信息确定的第二返回结果的情况下,根据第二返回结果确定第三响应结果,并将第三响应结果发送给用户设备,其中,第三响应结果与第一响应结果相同,第二返回结果与第三响应结果的格式不同。
9、上述过程中,在接收到返回失败信息的情况下,服务器启动api信息自动采集程序,重新获取第一api对应的信息,生成并存储对应的api代码,并根据新的api代码获取对应的响应结果,可以保证用户设备获得最新的服务和数据,每个api保持可访问状态,相较于当前依赖人工收集、管理和更新api相关信息的方法,可显著降低人工成本。
10、示例性地,重新确定第一api对应的第二api代码的具体过程如下:获取第一api的网页信息;根据抽取模型,从第一api的网页信息中提取第一api文档信息,抽取模型是通过机器学习训练得到的,第一api文档信息至少包括第二参数信息、第一api名称以及第一api返回值中的一种或者多种;根据第一api名称确定函数名,根据第二参数信息确定参数定义,根据第二参数信息、第一api名称以及第一api返回值确定函数体以及文档字符串,其中,参数定义用于指示函数的输入变量,函数体用于指示计算或者操作逻辑,文档字符串用于描述函数功能、参数和返回值;根据函数名、参数定义、函数体以及文档字符串,确定第二api代码。
11、上述过程还可以应用于更多来源的api数量扩展的场景,可以在不需要人工参与的情况下,集成多个平台的api资源,通过抽取模型本文档来自技高网...
【技术保护点】
1.一种API调用方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
5.根据权利要求4所述的方法,其特征在于,所述重新确定所述第一API对应的第二API代码包括:
6.根据权利要求3-5任一项所述的方法,其特征在于,所述方法还包括:
7.一种API调用装置,其特征在于,所述装置包括:
8.根据权利要求7所述的装置,其特征在于,所述装置还包括缓存单元和发送单元:
9.根据权利要求8所述的装置,其特征在于,所述装置还包括执行单元:
10.根据权利要求9所述的装置,其特征在于,所述装置还包括代码生成单元:
11.根据权利要求10所述的装置,其特征在于,所述装置还包括采集单元、信息抽取单元和训练单元:
12.根据权利要求9-11任一项所述的装置,其特征在于,所述执行单元还用于:
13.
14.一种包含指令的计算机程序产品,其特征在于,当所述指令被计算设备运行时,使得所述计算设备实现如权利要求1-6任一项所述的方法。
15.一种计算机可读存储介质,其特征在于,包括计算机程序指令,当所述计算机程序指令由计算设备执行时,以使所述计算设备实现如权利要求1-6任一项所述的方法。
...【技术特征摘要】
1.一种api调用方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
5.根据权利要求4所述的方法,其特征在于,所述重新确定所述第一api对应的第二api代码包括:
6.根据权利要求3-5任一项所述的方法,其特征在于,所述方法还包括:
7.一种api调用装置,其特征在于,所述装置包括:
8.根据权利要求7所述的装置,其特征在于,所述装置还包括缓存单元和发送单元:
9.根据权利要求8所述的装置,其特征在于,所述装置还包括执行单元:
10.根据权利要求9所述的装置,其特征在...
【专利技术属性】
技术研发人员:陈懿斌,梁小波,李俊涛,李哲,张民,
申请(专利权)人:深圳华为云计算技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。