[发明专利]检测JS程序的API数据类型的方法装置、介质和设备在审
申请号: | 201910543771.8 | 申请日: | 2019-06-21 |
公开(公告)号: | CN110389899A | 公开(公告)日: | 2019-10-29 |
发明(设计)人: | 邬亮 | 申请(专利权)人: | 北京字节跳动网络技术有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36;G06F8/41 |
代理公司: | 北京睿驰通程知识产权代理事务所(普通合伙) 11604 | 代理人: | 张文平 |
地址: | 100041 北京市石景山区*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 数据类型 检测 返回数据 请求数据 有效地 种检测 映射 调用 解析 帮助 发现 开发 | ||
1.一种基于IDS文件的检测JS程序的API数据类型的方法,其特征在于,包括:
解析IDS文件得到API请求数据和返回数据的IDS数据类型;
将所述IDS数据类型映射为JS数据类型;
根据所述JS数据类型生成类型检测函数;
在API的库代码中调用所述类型检测函数对所述请求数据和/或返回数据进行类型检测。
2.如权利要求1所述的方法,其特征在于,所述根据所述JS数据类型生成类型检测函数,包括:
根据所述JS数据类型生成通用检测函数和专项检测函数。
3.如权利要求1所述的方法,其特征在于,所述在API的库代码中调用所述类型检测函数对所述请求数据和/或返回数据进行类型检测,包括:
对于API调用方,生成的JS类型检测函数在请求数据发出去前或返回数据收到后对数据的类型进行检测;
对于API的提供方,生成的JS类型检测函数在请求数据收到后或返回数据发出去前对数据的类型进行检测。
4.如权利要求1所述的方法,其特征在于,所述解析IDS文件得到API请求数据和返回数据的IDS数据类型,包括:
当所述IDS文件为json格式时,调用JS内置的解析函数解析,得到API请求数据和返回数据的IDS数据类型;和/或,
当所述IDS文件为Thrift IDL或Protocol Buffers Language格式时,解析成抽象语法树,得到API请求数据和返回数据的IDS数据类型。
5.如权利要求2所述的方法,其特征在于,所述在API的库代码中调用所述类型检测函数对所述请求数据和/或返回数据进行类型检测,包括:
所述通用检测函数包括普通函数,通过所述普通函数检测所述请求数据和/或返回数据是否为Number、String、Boolean、Array或Object类型;和/或,
所述通用检测函数包括递归函数,通过所述递归函数检查Array和Object的子项的类型。
6.如权利要求2所述的方法,其特征在于,所述在API的库代码中调用所述类型检测函数对所述请求数据和/或返回数据进行类型检测,包括:
所述专项检测函数调用所述通用检测函数检测所述请求数据和/或返回数据类型是否为“Object”类型;
检测“Container”的每个字段对应属性值的类型,当字段的类型为“Number”、“String”或“Boolean”时,调用普通检测函数进行检测;当字段的类型为“Array”或“Object”时,调用递归检测函数进行检测;当字段的类型为“Object”时,调用所述专项检测函数进行检测。
7.如权利要求2所述的方法,其特征在于,所述根据所述JS数据类型生成专项检测函数,包括:
将“API”类型的入参和返回值的类型封装成一个“Container”类型,生成对应的专项检测函数。
8.如权利要求1所述的方法,其特征在于,还包括:
通过所述类型检测函数检测所述请求数据和/或返回数据的类型是否符合预期;
如果不符合预期则给出异常信息。
9.一种基于IDS文件的检测JS程序的API数据类型的装置法,其特征在于,包括:
解析单元,用于解析IDS文件得到API请求数据和返回数据的IDS数据类型;
映射单元,用于将所述IDS数据类型映射为JS数据类型;
生成单元,用于根据所述JS数据类型生成类型检测函数;
检测单元,用于在API的库代码中调用所述类型检测函数对所述请求数据和/或返回数据进行类型检测。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1至8中任一项所述的方法。
11.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如权利要求1至8中任一项所述的方法。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京字节跳动网络技术有限公司,未经北京字节跳动网络技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910543771.8/1.html,转载请声明来源钻瓜专利网。