CN117573622A - 一种自动清理前端项目中废弃接口方法及装置 - Google Patents
一种自动清理前端项目中废弃接口方法及装置 Download PDFInfo
- Publication number
- CN117573622A CN117573622A CN202410050836.6A CN202410050836A CN117573622A CN 117573622 A CN117573622 A CN 117573622A CN 202410050836 A CN202410050836 A CN 202410050836A CN 117573622 A CN117573622 A CN 117573622A
- Authority
- CN
- China
- Prior art keywords
- interface
- file
- interfaces
- service code
- content
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 36
- 238000004140 cleaning Methods 0.000 title claims abstract description 31
- 230000008676 import Effects 0.000 claims abstract description 32
- 230000006870 function Effects 0.000 description 6
- 239000002699 waste material Substances 0.000 description 6
- 238000011161 development Methods 0.000 description 4
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- VYZAMTAEIAYCRO-UHFFFAOYSA-N Chromium Chemical compound [Cr] VYZAMTAEIAYCRO-UHFFFAOYSA-N 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/14—Details of searching files based on file metadata
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/16—File or folder operations, e.g. details of user interfaces specifically adapted to file systems
- G06F16/162—Delete operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/16—File or folder operations, e.g. details of user interfaces specifically adapted to file systems
- G06F16/164—File meta data generation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24564—Applying rules; Deductive queries
- G06F16/24566—Recursive queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/90335—Query processing
- G06F16/90344—Query processing by using string matching techniques
Abstract
本申请提供了一种自动清理前端项目中废弃接口方法及装置,包括:从接口文件目录中解析出所有接口文件名称,从业务代码文件目录中解析出所有业务代码文件内容;针对每一个业务代码文件内容,遍历所有接口文件名称的数组以便从当前业务代码文件内容中解析出每一个接口文件名称对应的接口导入语句,解析接口导入语句中导入的所有接口,遍历所述所有接口解析每一个接口在当前业务代码文件内容的使用数量以确定当前业务代码文件内容中需清理的接口,从所述接口文件目录中解析得到所有接口文件,解析出每一个接口文件中的所有接口,遍历所述所有接口根据全局对象中对应接口使用数量确定当前接口文件中需清理的接口。
Description
技术领域
本申请各实施例属网络安全技术领域,尤其涉及一种自动清理前端项目中废弃接口方法及装置。
背景技术
前端接口是指客户端使用的API接口,用于与服务器端进行数据交互和通信。随着前后端分离架构的广泛应用,由前端触发接口发起http请求后端返回数据也成为前后端数据交互的基本方式,因此在前端项目中充斥着大量的接口通常这些接口存放在固定的接口文件中。
在项目实际开发中随着功能快速迭代尤其是在中大型项目中可能会存在迭代过程中遗留了大量废弃(在业务代码中无实际使用)接口的问题,造成问题的原因主要在于对接口管理不够重视开发人员没有及时的清理废弃接口。
目前清理废弃接口主要是通过开发人员在代码编辑器中搜索接口名称进而分析接口在业务代码中的使用情况后判断该接口是否需要被删除。在小型项目中这种方式可以解决问题,但在中大型项目中可能存在成百上千个接口,开发人员如果还采取手动依次查找清理显然比较繁琐占用宝贵的开发时间。
发明内容
为了解决或缓解现有技术中的问题,本申请实施例提供了一种自动清理前端项目中废弃接口方法及装置,本申请可以自动删除清理无实际使用的废弃接口。
第一方面,本申请实施例提供了一种自动清理前端项目中废弃接口方法,包括:
创建全局对象以存储所有接口信息;
从接口文件目录中解析出所有接口文件名称,并将所有接口文件名称以数组保存;
从业务代码文件目录中解析出所有业务代码文件内容;
针对每一个所述业务代码文件内容,遍历所述所有接口文件名称的数组以便从当前业务代码文件内容中解析出每一个接口文件名称对应的接口导入语句;
解析所述接口导入语句中导入的所有接口;
遍历所述所有接口解析每一个接口在当前业务代码文件内容的使用数量以确定当前业务代码文件内容中需清理的接口,同时将所述所有接口记录在所述全局对象中;
从所述接口文件目录中解析得到所有接口文件,解析出每一个接口文件中的所有接口,遍历所述所有接口根据所述全局对象中对应接口使用数量确定当前接口文件中需清理的接口。
作为本申请一优选实施例,所述从接口文件目录中解析出所有接口文件名称,并将所有接口文件名称以数组保存,包括:
从配置文件中解析出配置的接口文件目录,递归查询所述接口文件目录;
通过node.js软件中fs.readdir方法从所述接口文件目录解析出所有接口文件名称,并将所有接口文件名称以数组保存。
作为本申请一优选实施例,所述从业务代码文件目录中解析出所有业务代码文件内容,包括:
从配置文件中解析出配置的业务代码文件目录,递归查询所述业务代码文件目录;
通过node.js软件中fs.readdir方法从所述业务代码文件目录读取所有业务代码文件内容。
作为本申请一优选实施例,所述针对每一个所述业务代码文件内容,遍历所述所有接口文件名称的数组以便从当前业务代码文件内容中解析出每一个接口文件名称对应的接口导入语句,解析所述接口导入语句中导入的所有接口,包括:
遍历所述数组,在for循环体中基于接口文件名称动态创建正则表达式;
通过所述正则表达式匹配每个业务代码文件内容中的每个接口导入语句,从匹配结果中解析出所述业务代码文件内容引入的接口。
作为本申请一优选实施例,所述遍历所述所有接口解析每一个接口在当前业务代码文件内容的使用数量以确定当前业务代码文件内容中需清理的接口,包括:
遍历当前业务代码文件内容引入接口,通过正则表达式匹配当前代码文件内容以解析出每个业务代码文件内容引入接口实际使用数量;
根据所述每个业务代码文件内容引入接口名称的数量确定需清理的接口。
作为本申请一优选实施例,所述根据所述每个业务代码文件内容引入的接口的使用次数确定需清理的接口,包括:
当解析出的业务代码文件内容中引入接口名称的数量小于预设阈值时,在解析出的业务代码文件内容删除引入接口;
当解析出的业务代码文件内容中引入接口名称的数量大于预设阈值时,将解析出的业务代码文件内容中引入接口的引用数量与使用数量总和减1,得到所述解析出的业务代码文件内容中引入接口的实际使用次数。
作为本申请一优选实施例,所述在解析出的业务代码文件内容删除引入接口,包括:
将每个业务代码文件内容中的每个接口导入语句中的接口名称所在的位置替换为空。
作为本申请一优选实施例,所述从所述所有接口文件名称中解析出所有接口名称,根据所述全局对象中接口名称的使用次数确定所述所有接口名称中需清理的接口,包括:
从所述接口文件目录中解析出所有接口文件内容,使用正则表达式匹配所述接口文件内容解析出所有接口名称;
确定所述全局对象中的所有接口信息中是否存在键值,所述键值为解析出接口名称与解析出接口名称对应的接口文件名称组合形成的键值;
如果存在,且解析出接口名称对应的接口的使用次数大于0,则所述接口名称对应的接口为有效接口,否则,在所述接口文件内容中删除所述接口名称的接口函数定义和接口注释。
作为本申请一优选实施例,所述在所述接口文件内容中删除所述接口名称对应的接口,之后,包括:
在所述全局对象中设置与在所述接口文件内容中删除的接口名称对应的接口信息的使用次数为0。
与现有技术相比,本申请实施例提供了一种自动清理前端项目中废弃接口方法,具体通过创建全局对象以存储所有接口信息;从接口文件目录中解析出所有接口文件名称,并将所有接口文件名称以数组保存;从业务代码文件目录中解析出所有业务代码文件内容;针对每一个所述业务代码文件内容,遍历所述所有接口文件名称的数组以便从当前业务代码文件内容中解析出每一个接口文件名称对应的接口导入语句;解析所述接口导入语句中导入的所有接口;遍历所述所有接口解析每一个接口在当前业务代码文件内容的使用数量以确定当前业务代码文件内容中需清理的接口,同时将所述所有接口记录在所述全局对象中;从所述接口文件目录中解析得到所有接口文件,解析出每一个接口文件中的所有接口,遍历所述所有接口根据所述全局对象中对应接口使用数量确定当前接口文件中需清理的接口。本申请可以自动删除清理无实际使用的废弃接口,解决了现有技术中由于开发人员采取手动依次查找清理废弃接口所带来的比较繁琐且占用大量开发时间所带来的技术问题。
第二方面,本申请实施例还提供了一种自动清理前端项目中废弃接口装置,包括:
创建模块,用于创建全局对象以存储所有接口信息;
解析模块,用于从接口文件目录中解析出所有接口文件名称,并将所有接口文件名称以数组保存;
所述解析模块,还用于从业务代码文件目录中解析出所有业务代码文件内容;
所述解析模块,还用于针对每一个所述业务代码文件内容,遍历所述所有接口文件名称的数组以便从当前业务代码文件内容中解析出每一个接口文件名称对应的接口导入语句;解析所述接口导入语句中导入的所有接口;遍历所述所有接口解析每一个接口在当前业务代码文件内容的使用数量以确定当前业务代码文件内容中需清理的接口,同时将所述所有接口记录在所述全局对象中;
清理模块,还用于从所述接口文件目录中解析得到所有接口文件,解析出每一个接口文件中的所有接口,遍历所述所有接口根据所述全局对象中对应接口使用数量确定当前接口文件中需清理的接口。
与现有技术相比,本申请提供的一种自动清理前端项目中废弃接口装置的有益效果与第一方面相同,在此不再赘述。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。后文将参照附图以示例性而非限制性的方式详细描述本申请的一些具体实施例。附图中相同的附图标记标示了相同或类似的部件或部分,本领域技术人员应该理解的是,这些附图未必是按比例绘制的,在附图中:
图1是本申请实施例提供的一种自动清理前端项目中废弃接口方法流程示意图;
图2是本申请实施例提供的一种自动清理前端项目中废弃接口装置的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
第一方面,如图1所示,本申请实施例提供了一种自动清理前端项目中废弃接口方法,包括:
步骤S01,创建全局对象以存储所有接口信息;
需要说明的是,本申请主要针对由Vue、React等主流前端开发框架构建的前端应用,本申请将以npm包的形式上传至npm软件包开放平台,npm(“Node 包管理器”)是JavaScript 运行时 Node.js 的默认程序包管理器,用户通过npm或yarn等包管理工具下载安装,npm包中配置项不再展开描述。
为了在相关文件目录下确定需通过自动清理前端项目中废弃接口软件进行清理的废弃接口,所以在运行自动清理前端项目中废弃接口软件前需要在项目根目录中新建配置文件其中配置项如下:
1、配置需要清理的接口文件目录路径;
2、配置需要清理的业务代码文件目录路径;
在所述Vue、React等类型的应用描述文件package.json中配置本申请的运行命令(参考Vue,React类型应用中第三方库通用运行命令配置方式)。在前端项目目录下打开终端执行所述运行命令以便运行自动清理前端项目中废弃接口软件:
当程序运行后,首先会注册一全局对象以存储所有接口信息,全局对象基本结构为接口文件名称与接口名称作为键值key,接口信息作为值value,其中,接口信息包括以下属性:1、接口使用数量(默认值为0);2、接口对应的业务代码文件路径。
步骤S02,从接口文件目录中解析出所有接口文件名称,并将所有接口文件名称以数组保存;
步骤S02具体包括:从配置文件中解析出配置的接口文件目录,递归查询所述接口文件目录;
通过node.js软件中fs.readdir方法从所述接口文件目录解析出所有接口文件名称,并将所有接口文件名称以数组保存。
需要说明的是,递归查询通常用于在树形结构或者图像结构中以查找某个节点或者路径是否存在。数组是有序的元素序列。 若将有限个类型相同的变量的集合命名,那么这个名称为数组名。组成数组的各个变量称为数组的分量,也称为数组的元素,有时也称为下标变量。用于区分数组的各个元素的数字编号称为下标。数组是在程序设计中,为了处理方便,把具有相同类型的若干元素按有序的形式组织起来的一种形式。这些有序排列的同类数据元素的集合称为数组。
Node.js对一些特殊用例进行优化,提供替代的API,使得V8在非浏览器环境下运行得更好,V8引擎执行Javascript的速度非常快,性能非常好,基于Chrome JavaScript运行时建立的平台,用于方便地搭建响应速度快、易于扩展的网络应用。
本步骤的主要目的是从接口文件目录中解析出所有接口文件名称,并将所有接口文件名称以数组形式保存以便后续解析出业务代码文件内容中导入的接口。
步骤S03,从业务代码文件目录中解析出所有业务代码文件内容;
步骤S03具体包括:从配置文件中解析出配置的业务代码文件目录,递归查询所述业务代码文件目录;
通过node.js软件中fs.readdir方法从所述业务代码文件目录读取所有业务代码文件内容。
本步骤的主要目的是从业务代码文件目录中解析出所有业务代码文件内容以便后续解析出业务代码文件内容中导入的接口。
步骤S04,针对每一个所述业务代码文件内容,遍历所述所有接口文件名称的数组以便从当前业务代码文件内容中解析出每一个接口文件名称对应的接口导入语句,解析所述接口导入语句中导入的所有接口;
步骤S04具体包括:遍历所述接口文件名称的数组,在for循环体中基于接口文件名称动态创建正则表达式;
通过所述正则表达式匹配每个业务代码文件内容中的每个接口导入语句,从匹配结果中解析出所述业务代码文件内容引入的接口。
需要说明的是,for循环是编程语言中一种循环语句,而循环语句由循环体及循环的判定条件两部分组成,其表达式为:for(单次表达式;条件表达式;末尾循环体)。
具体的,从配置文件中解析出配置的业务代码文件目录,递归查询该目录配合node.js软件中fs.readdir方法读取每一个业务代码文件内容codeFileContent。然后遍历接口文件名称数组apiFileNames,在for循环体中基于接口文件名称(设为变量apiFileName)动态创建正则表达式,精确通过所述正则表达式匹配每个业务代码文件内容中的每个接口导入语句。
步骤S05,遍历所述所有接口解析每一个接口在当前业务代码文件内容的使用数量以确定当前业务代码文件内容中需清理的接口,同时将所述所有接口记录在所述全局对象中;
步骤S05具体包括,遍历当前业务代码文件内容中引入的所有接口,通过正则表达式匹配当前代码文件内容以解析出每个接口在当前代码文件的使用数量;
根据所述每个业务代码文件内容引入接口实际使用数量确定需清理的接口。
通过步骤S05可以确定每个业务代码文件内容引入接口的实际使用数量进而确定接口是否需要被删除清理。。
具体的,根据所述每个业务代码文件内容引入接口名称的数量确定需清理的接口,包括:
当解析出的业务代码文件内容中引入接口名称的数量小于预设阈值时,在解析出的业务代码文件内容删除引入接口;
当解析出的业务代码文件内容中引入接口名称的数量大于预设阈值时,将解析出的业务代码文件内容中引入接口的数量减1,得到所述解析出的业务代码文件内容中引入接口的实际使用次数。
具体的,因为业务代码文件内容中引入接口有可能只是引用但是没有实际使用,通过正则表达式匹配当前代码文件内容,引入接口的匹配结果有两种情况:
1、当解析出的接口名称数量小于2,则证明该接口只是单纯引用在接口导入语句中,所以需要删除该接口名称;2、当解析出的接口名称数量大于2,因为有一个是属于接口引入,所以需要减1,得到所述解析出的业务代码文件内容中引入接口的实际使用次数。
所述在解析出的业务代码文件内容删除引入接口,包括:
将每个业务代码文件内容中的每个接口导入语句中的接口名称所在的位置替换为空。
具体的,通过使用fs.writeFile在每个接口导入语句中重写代码文件,使用正则替换方法将接口内容替换为空达到删除接口函数的目的。
步骤S06,从所述所有接口文件中解析出所有接口名称,根据所述全局对象中接口名称的使用次数确定所述所有接口名称中需清理的接口。
步骤S06具体包括:从所述接口文件目录中解析出所有接口文件内容,使用正则表达式匹配所述接口文件内容解析出所有接口名称;
确定所述全局对象中的所有接口信息中是否存在键值,所述键值为解析出接口名称与解析出接口名称对应的接口文件名称组合形成;
如果存在,且解析出接口名称对应的接口的使用次数大于0,则所述接口名称对应的接口为有效接口,否则,在所述接口文件内容中删除所述接口名称的接口函数定义和接口注释。
需要说明的是,从配置文件中解析出配置的接口文件目录,递归查询该接口文件目录下所有的接口文件,通过node.js软件中fs.readFile方法读取每一个接口文件内容为apiFileContent。使用正则表达式匹配接口文件内容精确解析所有的接口名称。设置接口名称和当前接口文件名称作为键值key从全局对象中取值,能取到值且接口信息使用次数大于0,证明该接口为有效接口,否则,证明该接口未曾被使用需要被清理,然后接口文件名称(设为变量apiFileName)动态创建正则表达式匹配当前接口文件内容匹配结果包含接口函数定义以及接口注释,使用正则替换方法将接口内容替换为空达到删除接口函数的目的。
所述在所述接口文件内容中删除所述接口名称对应的接口之后,包括:
具体的,在所述全局对象中设置与在所述接口文件内容中删除的接口名称对应的接口信息的使用次数为0。
通过node环境中的fs文件对象实现了对项目目录以及文件的读取,将代码文件读取为文本便于使用正则方法对文件操作。
本申请通过使用正则表达式实现查找修改,基于变量动态创建正则表达式使得对代码文本的查找、修改等操作更加便捷。
通过Vue、React等主流前端框架构建的前端应用,其存在相似的目录结构、接口定义方式、接口导入方式以及接口使用方式。利用结构的相似性使得本发明可以适用于大多数前端项目,在程序编程上本申请避开了前端项目中各种类型文件如.js、.ts、.jsx、.tsx的类型差别将代码文件统一作为普通文本使用正则表达式处理提高程序的通用性。
相对于开发人员在代码编辑器中手动查找接口名称对比分析接口使用情况然后再手动清理废弃接口的方式,本申请通过简单的配置即可实现程序自动化清理废弃接口更加的简单易操作提高了代码的可维护性和人效。
第二方面,如图2所示,本申请实施例还提供了一种自动清理前端项目中废弃接口装置,包括:
创建模块21,用于创建全局对象以存储所有接口信息;
解析模块22,用于从接口文件目录中解析出所有接口文件名称,并将所有接口文件名称以数组保存;
所述解析模块22,还用于从业务代码文件目录中解析出所有业务代码文件内容;
所述解析模块22,还用于针对每一个所述业务代码文件内容,遍历所述所有接口文件名称的数组以便从当前业务代码文件内容中解析出每一个接口文件名称对应的接口导入语句,解析所述接口导入语句中导入的所有接口;
遍历所述所有接口解析每一个接口在当前业务代码文件内容的使用数量以确定当前业务代码文件内容中需清理的接口,同时将所述所有接口记录在所述全局对象中;
清理模块23,还用于从所述接口文件目录中解析得到所有接口文件,解析出每一个接口文件中的所有接口,遍历所述所有接口根据所述全局对象中对应接口使用数量确定当前接口文件中需清理的接口。
与现有技术相比,本申请提供的一种自动清理前端项目中废弃接口装置的有益效果与第一方面相同,在此不再赘述。
最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。
Claims (10)
1.一种自动清理前端项目中废弃接口方法,其特征在于,包括:
创建全局对象以存储所有接口信息;
从接口文件目录中解析出所有接口文件名称,并将所有接口文件名称以数组保存;
从业务代码文件目录中解析出所有业务代码文件内容;
针对每一个所述业务代码文件内容,遍历所述所有接口文件名称的数组,以便从当前业务代码文件内容中解析出每一个接口文件名称对应的接口导入语句,解析所述接口导入语句中导入的所有接口;
遍历所述所有接口解析每一个接口在当前业务代码文件内容的使用数量以确定当前业务代码文件内容中需清理的接口,同时将所述所有接口记录在所述全局对象中;
从所述接口文件目录中解析得到所有接口文件,解析出每一个接口文件中的所有接口,遍历所述所有接口根据所述全局对象中对应接口使用数量确定当前接口文件中需清理的接口。
2.如权利要求1所述的一种自动清理前端项目中废弃接口方法,其特征在于,所述从接口文件目录中解析出所有接口文件名称,并将所有接口文件名称以数组保存,包括:
从配置文件中解析出配置的接口文件目录,递归查询所述接口文件目录;
通过node.js软件中fs.readdir方法从所述接口文件目录解析出所有接口文件名称,并将所有接口文件名称以数组保存。
3.如权利要求1所述的一种自动清理前端项目中废弃接口方法,其特征在于,所述从业务代码文件目录中解析出所有业务代码文件内容,包括:
从配置文件中解析出配置的业务代码文件目录,递归查询所述业务代码文件目录;
通过node.js软件中fs.readdir方法从所述业务代码文件目录读取所有业务代码文件内容。
4.如权利要求1所述的一种自动清理前端项目中废弃接口方法,其特征在于,所述针对每一个所述业务代码文件内容,遍历所述所有接口文件名称的数组,以便从当前业务代码文件内容中解析出每一个接口文件名称对应的接口导入语句,解析所述接口导入语句中导入的所有接口,包括:
遍历所述数组,在for循环体中基于接口文件名称动态创建正则表达式;
通过所述正则表达式匹配每个业务代码文件内容中的每个接口导入语句,从匹配结果中解析出所述业务代码文件内容引入的接口。
5.如权利要求1所述的一种自动清理前端项目中废弃接口方法,其特征在于,所述遍历所述所有接口解析每一个接口在当前业务代码文件内容的使用数量以确定当前业务代码文件内容中需清理的接口,包括:
遍历当前业务代码文件内容引入的所有接口,通过正则表达式匹配当前代码文件内容以解析出当前业务代码文件内容引入接口名称的数量;
根据每个业务代码文件内容引入接口实际使用数量确定需清理的接口。
6.如权利要求5所述的一种自动清理前端项目中废弃接口方法,其特征在于,所述根据每个业务代码文件内容引入实际使用数量确定需清理的接口,包括:
当解析出的业务代码文件内容中引入接口名称的数量小于预设阈值时,在解析出的业务代码文件内容中删除引入接口;
当解析出的业务代码文件内容中引入接口名称的数量大于预设阈值时,将解析出的业务代码文件内容中引入接口的引用数量与使用数量总和减1,得到所述解析出的业务代码文件内容中引入接口的实际使用次数。
7.如权利要求6所述的一种自动清理前端项目中废弃接口方法,其特征在于,所述在解析出的业务代码文件内容中删除引入接口,包括:
将每个业务代码文件内容中的每个接口导入语句中接口名称所在的位置替换为空。
8.如权利要求1所述的一种自动清理前端项目中废弃接口方法,其特征在于,所述从所述接口文件目录中解析得到所有接口文件,解析出每一个接口文件中的所有接口,遍历所述所有接口根据所述全局对象中对应接口使用数量确定当前接口文件中需清理的接口,包括:
从所述接口文件目录中解析出所有接口文件内容,使用正则表达式匹配所述接口文件内容解析出所有接口名称;
确定所述全局对象中的所有接口信息中是否存在键值,所述键值为解析出接口名称与解析出接口名称对应的接口文件名称组合形成的键值;
如果存在,且解析出接口名称对应的接口使用次数大于0,则所述接口名称对应的接口为有效接口,否则,在接口文件内容中删除所述接口名称的接口函数定义和接口注释。
9.如权利要求8所述的一种自动清理前端项目中废弃接口方法,其特征在于,所述在所述接口文件内容中删除所述接口名称对应的接口,之后,包括:
在所述全局对象中设置与在所述接口文件内容中删除的接口名称对应接口信息的使用次数为0。
10.一种自动清理前端项目中废弃接口装置,其特征在于,包括:
创建模块,用于创建全局对象以存储所有接口信息;
解析模块,用于从接口文件目录中解析出所有接口文件名称,并将所有接口文件名称以数组保存;
所述解析模块,还用于从业务代码文件目录中解析出所有业务代码文件内容;
所述解析模块,还用于针对每一个所述业务代码文件内容,遍历所述所有接口文件名称的数组,以便从当前业务代码文件内容中解析出每一个接口文件名称对应的接口导入语句,解析所述接口导入语句中导入的所有接口;
遍历所述所有接口解析每一个接口在当前业务代码文件内容的使用数量以确定当前业务代码文件内容中需清理的接口,同时将所述所有接口记录在所述全局对象中;
清理模块,用于遍历解析出每个所述业务代码文件内容引入的接口对应的接口文件名称以确定所有业务代码文件内容中需清理的接口;
清理模块,还用于从所述接口文件目录中解析得到所有接口文件,解析出每一个接口文件中的所有接口,遍历所述所有接口根据所述全局对象中对应接口使用数量确定当前接口文件中需清理的接口。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410050836.6A CN117573622B (zh) | 2024-01-15 | 2024-01-15 | 一种自动清理前端项目中废弃接口方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410050836.6A CN117573622B (zh) | 2024-01-15 | 2024-01-15 | 一种自动清理前端项目中废弃接口方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117573622A true CN117573622A (zh) | 2024-02-20 |
CN117573622B CN117573622B (zh) | 2024-04-09 |
Family
ID=89864556
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410050836.6A Active CN117573622B (zh) | 2024-01-15 | 2024-01-15 | 一种自动清理前端项目中废弃接口方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117573622B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006164219A (ja) * | 2004-11-09 | 2006-06-22 | Phifit Kk | 有限要素解析用インターフェース、有限要素解析用インターフェースのプログラムを記録したコンピュータ読み取り可能な記録媒体、高付加価値通信網を利用した有限要素解析方法、有限要素解析用並列処理計算機および有限要素解析用計算機 |
CN106599323A (zh) * | 2017-01-03 | 2017-04-26 | 北京百度网讯科技有限公司 | 在分布式文件系统中实现分布式管道的方法和装置 |
CN109446042A (zh) * | 2018-10-12 | 2019-03-08 | 安徽南瑞中天电力电子有限公司 | 一种用于智能用电设备的日志管理方法及系统 |
CN112241430A (zh) * | 2020-10-26 | 2021-01-19 | 浪潮云信息技术股份公司 | 一种应用于多系统对接处理的模型 |
CN115562642A (zh) * | 2022-10-28 | 2023-01-03 | 天翼电子商务有限公司 | 基于数据库和Mustache模板引擎的生成代码方法 |
-
2024
- 2024-01-15 CN CN202410050836.6A patent/CN117573622B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006164219A (ja) * | 2004-11-09 | 2006-06-22 | Phifit Kk | 有限要素解析用インターフェース、有限要素解析用インターフェースのプログラムを記録したコンピュータ読み取り可能な記録媒体、高付加価値通信網を利用した有限要素解析方法、有限要素解析用並列処理計算機および有限要素解析用計算機 |
CN106599323A (zh) * | 2017-01-03 | 2017-04-26 | 北京百度网讯科技有限公司 | 在分布式文件系统中实现分布式管道的方法和装置 |
CN109446042A (zh) * | 2018-10-12 | 2019-03-08 | 安徽南瑞中天电力电子有限公司 | 一种用于智能用电设备的日志管理方法及系统 |
CN112241430A (zh) * | 2020-10-26 | 2021-01-19 | 浪潮云信息技术股份公司 | 一种应用于多系统对接处理的模型 |
CN115562642A (zh) * | 2022-10-28 | 2023-01-03 | 天翼电子商务有限公司 | 基于数据库和Mustache模板引擎的生成代码方法 |
Non-Patent Citations (1)
Title |
---|
邱忠洋;付林;吴晶璐;陈宏波;: "基于移动客户端的气象预警预报系统设计与实现", 湖北农业科学, no. 08, 25 April 2018 (2018-04-25) * |
Also Published As
Publication number | Publication date |
---|---|
CN117573622B (zh) | 2024-04-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109376166B (zh) | 脚本转换方法、装置、计算机设备及存储介质 | |
CN109344230B (zh) | 代码库文件生成、代码搜索、联结、优化以及移植方法 | |
Olteanu | SPEX: Streamed and progressive evaluation of XPath | |
CN107885501B (zh) | 获取Android中组件相互引用关系的方法及装置 | |
CN110502227B (zh) | 代码补全的方法及装置、存储介质、电子设备 | |
EP1777629A1 (en) | Method and apparatus for automatic form filling | |
CN111190594B (zh) | Vue组件的文档生成方法及装置 | |
CN109800207A (zh) | 日志解析方法、装置、设备及计算机可读存储介质 | |
US11262988B2 (en) | Method and system for using subroutine graphs for formal language processing | |
Allamanis et al. | Smartpaste: Learning to adapt source code | |
CN106648638A (zh) | 一种基于python的R.java文件的优化方法及优化系统 | |
US20040015905A1 (en) | Method for managing compiled filter code | |
CN113419721B (zh) | 基于web的表达式编辑方法、装置、设备和存储介质 | |
CN117573622B (zh) | 一种自动清理前端项目中废弃接口方法及装置 | |
CN111177098A (zh) | 查看系统日志上下文的方法及系统 | |
CN113448928A (zh) | 文件清理方法、装置、处理器及电子装置 | |
CN112685370B (zh) | 一种日志采集方法、装置、设备和介质 | |
CN113342749A (zh) | 文件路径匹配方法、装置、设备及计算机可读存储介质 | |
CN115238655A (zh) | 一种json数据编辑方法和装置 | |
CN116954701B (zh) | 一种基于血缘关系的二进制组件检测方法及系统 | |
JP7470769B1 (ja) | クラウドのapiの変更を分析する方法 | |
CN109343860A (zh) | 一种清理游戏补丁的方法、装置、服务器及介质 | |
CN113626465B (zh) | 数据库及在postgresql数据库中实现会话级变量的方法 | |
CN114546668B (zh) | 日志采集方法、装置、电子设备和计算机可读存储介质 | |
CN117349401A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |