一种基于RESTful API实现AWS API的方法及系统技术方案

技术编号:21917378 阅读:21 留言:0更新日期:2019-08-21 13:29
本发明专利技术公开了一种基于RESTful API实现AWS API的方法及系统,属于信息技术领域。本发明专利技术的基于RESTful API实现AWS API的方法通过redis中保存的时间戳过滤重放攻击的请求,读取配置文件中RESTful API需要的请求体,将AWS API接收到的参数转化为RESTful API所需的参数,根据配置文件中RESTful API的url和请求参数,发送http请求。该发明专利技术的基于RESTful API实现AWS API的方法无需重新开发代码,降低代码重复性,具有很好的推广应用价值。

A Method and System for Implementing AWS API Based on RESTful API

【技术实现步骤摘要】
一种基于RESTfulAPI实现AWSAPI的方法及系统
本专利技术涉及信息
,具体提供一种基于RESTfulAPI实现AWSAPI的方法及系统。
技术介绍
随着B/S系统复杂度逐渐提高,前后端分离设计成为设计的主流,后端提供RESTfulAPI实现业务逻辑的封装,专注于高并发,高可用,高性能,安全和存储,前端调用后端的RESTfulAPI,专注于页面表现,兼容性和用户体验,不关心业务逻辑的具体实现。前后端分离的设计可以降低B/S系统的耦合度,前后端的技术选型互不影响。近年公有云发展迅速,主流公有云厂商都提供AWS的openapi供租户使用,AWSAPI不区分请求方法,所有参数都在请求的params里。开发者可以调用openapi管理云上资源和开发自己的应用程序。现在后端已经实现了RESTful的API,通常将参数放在http请求的params,path和body里,而且区分请求方法,但面向开发者开放的openapi需要将参数全部放在params里,且不区分请求方法。如果重新开发openapi,RESTfulAPI迭代升级时,需要同步升级AWSAPI,投入大量人力和时间。本专利技术就实现了一种基于现有RESTfulAPI实现AWSAPI的方法,不需要开发代码,仅通过配置文件的配置即可实现,当RESTfulAPI迭代升级时,AWSAPI可以通过修改配置文件快速迭代。
技术实现思路
本专利技术的技术任务是针对上述存在的问题,提供一种当RESTfulAPI迭代升级时,如果不涉及API入参的变化,则AWSAPI无需变化,如涉及入参变化,仅修改配置文件即可,无需重新开发代码,降低代码重复性的基于RESTfulAPI实现AWSAPI的方法。本专利技术进一步的技术任务是提供一种基于RESTfulAPI实现AWSAPI的系统。为实现上述目的,本专利技术提供了如下技术方案:一种基于RESTfulAPI实现AWSAPI的方法,通过redis中保存的时间戳过滤重放攻击的请求,读取配置文件中RESTfulAPI需要的请求体,将AWSAPI接收到的参数转化为RESTfulAPI所需的参数,根据配置文件中RESTfulAPI的url和请求参数,发送http请求。该基于RESTfulAPI实现AWSAPI的方法在拦截器中通过redis中保存随机数判断该请求是否为重放攻击,若不是则放行。RESTfulAPI对AWSAPI透明,当RESTfulAPI的业务逻辑发生变化时,只需保证RESTfulAPI入参没有变化,AWSAPI就可正常提供服务,无需维护两套代码,降低代码重复率,实现了两种API的松耦合。作为优选,该基于RESTfulAPI实现AWSAPI的方法具体包括以下步骤:S1、判断时间戳和随机数是否为空,若不为空则放行;S2、判断时间戳是否有效,若无效则放行;S3、查询请求参数中的随机数是否与redis中的key值重复,若key值中存在请求参数中的随机数,则认为是重放攻击,否则为请求合法;S4、所有请求通过配置文件将AWSAPI的请求转化为RESTfulAPI的请求;S5、若AWSAPI请求的format参数为json,直接返回RESTfulAPI的返回值,若format参数为xml,将json格式的数据转换成xml格式再返回。作为优选,步骤S2中,判断时间戳是否有效的过程为判断当前时间戳是否比请求参数中的时间戳大超过60s,若超过60s,则时间戳失效。作为优选,步骤S3中,当为请求合法时,将随机数作为key,保存在redis中,有效期为1min。作为优选,步骤S4中,配置文件中配置的API为action,为一级节点,三个二级节点,分别是url,body和method。其中,url为接口路径,body为请求体,method为请求方法。一种基于RESTfulAPI实现AWSAPI的系统,该系统包括时间戳和随机数判断模块、时间戳有效性判断模块、重放攻击判断模块、请求转化模块和数据返回模块:时间戳和随机数判断模块用于判断时间戳和随机数是否为空;时间戳有效性判断模块用于判断时间戳是否有效;重放攻击判断模块用于查询请求参数中的随机数是否与redis中的key值重复,若key值中存在请求参数中的随机数,则认为是重放攻击,否则为请求合法;请求转化模块用于对所有请求通过配置文件将AWSAPI的请求转化为RESTfulAPI的请求;数据返回模块中,若AWSAPI请求的format参数为json,直接返回RESTfulAPI的返回值,若format参数为xml,将json格式的数据转换成xml格式再返回。作为优选,时间戳有效性判断模块用于判断时间戳是否有效的过程为:判断当前时间戳是否比请求参数中的时间戳大超过60s,若超过60s,则时间戳失效。作为优选,重放攻击判断模块中,当为请求合法时,将随机数作为key,保存在redis中,有效期为1min。作为优选,请求转化模块中,配置文件中配置的API为action,为一级节点,三个二级节点,分别是url,body和method。其中,url为接口路径,body为请求体,method为请求方法。与现有技术相比,本专利技术的基于RESTfulAPI实现AWSAPI的方法具有以下突出的有益效果:所述基于RESTfulAPI实现AWSAPI的方法可以只通过配置文件的配置实现基于现有RESTfulAPI对外提供AWSAPI,无需重新开发代码,降低代码重复性。当RESTfulAPI迭代升级时,如果不涉及API入参的变化,则AWSAPI无需变化,如涉及入参变化,仅修改配置文件即可,具有良好的推广应用价值。附图说明图1是本专利技术所述基于RESTfulAPI实现AWSAPI的方法的流程图;图2是本专利技术所述基于RESTfulAPI实现AWSAPI的方法中AWSAPI与RESTfulAPI的关系拓扑图。具体实施方式下面将结合附图和实施例,对本专利技术的基于RESTfulAPI实现AWSAPI的方法及系统作进一步详细说明。实施例本专利技术的基于RESTfulAPI实现AWSAPI的方法,通过redis中保存的时间戳过滤重放攻击的请求,读取配置文件中RESTfulAPI需要的请求体,将AWSAPI接收到的参数转化为RESTfulAPI所需的参数,根据配置文件中RESTfulAPI的url和请求参数,发送http请求。该基于RESTfulAPI实现AWSAPI的方法在拦截器中通过redis中保存随机数判断该请求是否为重放攻击,若不是则放行。所有请求都通过一个公共方法,读取配置文件中配置的body及url,组装报文,通过http请求调用RESTfulAPI,根据该请求中的format参数返回json或xml格式的数据。RESTfulAPI对AWSAPI透明,当RESTfulAPI的业务逻辑发生变化时,只需保证RESTfulAPI入参没有变化,AWSAPI就可正常提供服务,无需维护两套代码,降低代码重复率,实现了两种API的松耦合。如图1和图2所示,该基于RESTfulAPI实现AWSAPI的方法具体包括以下步骤:S1、判断时间戳和随机数是否为空,若不为空则放行。S2、判断时间戳是否有效,若无效则放行。判断时间戳是否有效的过程为判断当前时间戳是否比请求参数本文档来自技高网...

【技术保护点】
1.一种基于RESTful API实现AWS API的方法,其特征在于:通过redis中保存的时间戳过滤重放攻击的请求,读取配置文件中RESTful API需要的请求体,将AWS API接收到的参数转化为RESTful API所需的参数,根据配置文件中RESTful API的url和请求参数,发送http请求。

【技术特征摘要】
1.一种基于RESTfulAPI实现AWSAPI的方法,其特征在于:通过redis中保存的时间戳过滤重放攻击的请求,读取配置文件中RESTfulAPI需要的请求体,将AWSAPI接收到的参数转化为RESTfulAPI所需的参数,根据配置文件中RESTfulAPI的url和请求参数,发送http请求。2.根据权利要求1所述的基于RESTfulAPI实现AWSAPI的方法,其特征在于:具体包括以下步骤:S1、判断时间戳和随机数是否为空,若不为空则放行;S2、判断时间戳是否有效,若无效则放行;S3、查询请求参数中的随机数是否与redis中的key值重复,若key值中存在请求参数中的随机数,则认为是重放攻击,否则为请求合法;S4、所有请求通过配置文件将AWSAPI的请求转化为RESTfulAPI的请求;S5、若AWSAPI请求的format参数为json,直接返回RESTfulAPI的返回值,若format参数为xml,将json格式的数据转换成xml格式再返回。3.根据权利要求2所述的基于RESTfulAPI实现AWSAPI的方法,其特征在于:步骤S2中,判断时间戳是否有效的过程为判断当前时间戳是否比请求参数中的时间戳大超过60s,若超过60s,则时间戳失效。4.根据权利要求3所述的基于RESTfulAPI实现AWSAPI的方法,其特征在于:步骤S3中,当为请求合法时,将随机数作为key,保存在redis中,有效期为1min。5.根据权利要求4所述的基于RESTfulAPI实现AWSAPI的方法,其特征在于:步骤S4中,配置文件中配置的AP...

【专利技术属性】
技术研发人员:靳登科于昊董信超
申请(专利权)人:浪潮云信息技术有限公司
类型:发明
国别省市:山东,37

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1