【技术实现步骤摘要】
一种缓存方法以及装置
[0001]本申请各实施例属于通信
,具体涉及一种缓存方法以及装置。
技术介绍
[0002]在web应用系统中,经常会出现一些需要对大量数据进行计算统计分析的操作,而这些数据的实时性要求并不高。
[0003]在传统的Restful接口下,由于几乎不存在强类型校验,因此很容易在接口调用的函数上将计算的结果进行缓存。
[0004]而在使用GraphQL接口下,由于存在强类型校验和大量的自定义类型,对其结果和输入参数进行序列化和反序列化就会十分繁琐,因此在接口调用的函数上进行缓存就十分困难,缓存接口的缓存速度低,从而导致开发效率低下。
技术实现思路
[0005]为了解决现有技术存在的在接口调用的函数上进行缓存就十分困难,缓存接口的缓存速度低,从而导致开发效率低下的技术问题,本专利技术提供了一种缓存方法及装置。
[0006]第一方面,本专利技术提供了一种缓存方法,包括:接收客户端发起的HTTP请求,HTTP请求中包括GraphQL请求;响应于HTTP请求,解析HTT ...
【技术保护点】
【技术特征摘要】
1.一种缓存方法,其特征在于,包括:接收客户端发起的HTTP请求,所述HTTP请求中包括GraphQL请求;响应于所述HTTP请求,解析所述HTTP请求以获取所述客户端的用户信息;根据所述用户信息对所述客户端进行认证;当所述客户端认证通过时,解析所述GraphQL请求以获取所述GraphQL请求的请求方法和请求名称;根据请求方法和请求名称查询系统内部的缓存表,判断是否需要缓存所述GraphQL请求;当不需要缓存所述GraphQL请求时,通过请求函数进行处理;当需要缓存所述GraphQL请求时,获取所述GraphQL请求的Key值,根据所述Key值查询数据库;当所述数据库中存在所述Key值时,返回所述Key值对应的Value值;当所述数据库中不存在所述Key值时,通过请求函数进行处理;根据所述请求函数的处理结果判断所述GraphQL请求是否存在错误,若是,向所述客户端返回所述请求函数的处理结果,并对所述请求函数的处理结果进行缓存;否则,向所述客户端返回错误提示。2.根据权利要求1所述的缓存方法,其特征在于,所述根据所述用户信息对所述客户端进行认证,具体包括:查询系统内部的认证缓存模块是否记录有所述用户信息;当所述认证缓存模块记录有所述用户信息时,确定所述客户端为合法用户,所述客户端认证通过;当所述认证缓存模块未记录有所述用户信息时,对所述客户端进行JWT认证。3.根据权利要求2所述的缓存方法,其特征在于,所述对所述客户端进行JWT认证,具体包括:将存储有所述用户信息的JWT字段按照预设符号进行分段为Header信息、Payload信息和Verify Signature信息;将所述Header信息、Payload信息和Verify Signature信息进行解密;对解密后的所述Header信息、Payload信息和Verify Signature信息依次进行校验;当解密后的所述Header信息、Payload信息和Verify Signature信息均校验成功时,确定所述客户端为合法用户,并将所述用户信息记录到所述认证缓存模块中;否则,确定所述客户端为非法用户。4.根据权利要求1所述的缓存方法,其特征在于,所述解析所述GraphQL请求以获取所述GraphQL请求的请求方法和请求名称,具体包括:检测当前请求的起始字符是否为GraphQL;当检测到当前请求的起始字符为GraphQL时,使用GraphQLVaildator验证器对GraphQL请求进行校验,获取所述GraphQL请求的请求方法和请求名称。5.根据权利要求4所述的缓存方法,其特征在于,所述使用GraphQLVaildator验证器对GraphQL请求进行校验,具体包括:对所述GraphQL请求进行词法分析,将所述GraphQL请求分解为多个Token词法单元;将多个所述Tok...
【专利技术属性】
技术研发人员:余尚坤,朱文雷,
申请(专利权)人:北京长亭科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。