CN110308900B - 页面路由文档的生成方法、装置、计算机设备及存储介质 - Google Patents

页面路由文档的生成方法、装置、计算机设备及存储介质 Download PDF

Info

Publication number
CN110308900B
CN110308900B CN201910570352.3A CN201910570352A CN110308900B CN 110308900 B CN110308900 B CN 110308900B CN 201910570352 A CN201910570352 A CN 201910570352A CN 110308900 B CN110308900 B CN 110308900B
Authority
CN
China
Prior art keywords
routing
annotation
page
data
plug
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.)
Active
Application number
CN201910570352.3A
Other languages
English (en)
Other versions
CN110308900A (zh
Inventor
郑永欣
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangzhou Cubesili Information Technology Co Ltd
Original Assignee
Guangzhou Cubesili Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Guangzhou Cubesili Information Technology Co Ltd filed Critical Guangzhou Cubesili Information Technology Co Ltd
Priority to CN201910570352.3A priority Critical patent/CN110308900B/zh
Publication of CN110308900A publication Critical patent/CN110308900A/zh
Application granted granted Critical
Publication of CN110308900B publication Critical patent/CN110308900B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/31Programming languages or programming paradigms
    • G06F8/315Object-oriented languages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computing Systems (AREA)
  • Information Transfer Between Computers (AREA)
  • Stored Programmes (AREA)

Abstract

本发明实施例提供了一种页面路由文档的生成方法、装置、计算机设备及存储介质,涉及计算机软件技术领域。该页面路由文档的生成方法通过在各个插件工程的源代码中的各个类的位置处添加注解,获取页面路由中各个插件工程对应的源代码,在生成页面路由文档时,利用注解处理器解析各个源代码的注解,得到源代码对应的类信息;根据类信息生成各个插件工程的路由数据,并将路由数据编码成编码文件;根据编码文件生成页面路由文档。本技术方案能够准确获得页面路由所需要的路由数据,将路由数据编码成编码文件,以开启强制模式,检查路由数据的完整性和正确性,从而实现安卓工程页面路由文档的精准生成,提高路由文档的可读性。

Description

页面路由文档的生成方法、装置、计算机设备及存储介质
技术领域
本发明涉及计算机软件技术领域,具体而言,本发明涉及一种页面路由文档的生成方法、装置、计算机设备及存储介质。
背景技术
在一些操作系统的项目工程中,如Android系统,客户端的页面跳转需要依赖于API文档,不同的API文档记载相应的页面路由信息,以便于项目开发人员可以通过API文档了解页面路由的跳转情况。
以Android工程为例,该项目工程采用Java语言进行编写,Java提供一种文档生成工具,如JavaDoc,用于从Java源代码生成HTML格式的API文档。但由于无法识别页面路由对应特定的Java类等情况,影响了所生产的页面路由的准确性。
发明内容
本发明的目的旨在至少解决上述技术缺陷之一,特别是无法识别页面路由对应特定的Java类等情况,影响了所生产的页面路由的准确性的问题。
为了实现本发明的目的,采取如下技术方案:
第一方面,本发明实施例提供一种页面路由文档的生成方法,包括以下步骤:
获取页面路由中各个插件工程对应的源代码,其中,所述源代码中各个类的位置处添加有注解;
在生成页面路由文档时,利用注解处理器解析各个源代码的注解,得到所述源代码对应的类信息;
根据所述类信息生成各个所述插件工程的路由数据,并将所述路由数据编码成编码文件;
根据所述编码文件生成所述页面路由的页面路由文档。
在一实施例中,获取页面路由中各个插件工程对应的源代码之前,还包括:
通过使用关键字创建自定义的注解;
按照设定的注解规则,将所述注解添加到各个所述插件工程的源代码的相应的类的位置处。
在一实施例中,所述注解包括:
第一注解,用于注解页面路由对应的类;
第二注解,用于注解所述第一注解,对所述第一注解的注解参数进行文档补充说明;
第三注解,用于注解所述页面路由对应的类的属性;
第四注解,用于注解所述第三注解,对所述第三注解中的注解参数进行文档补充说明。
在一实施例中,所述将所述路由数据进行编码成编码文件的步骤,包括:
将所述路由数据编码成JSON格式数据,并对所述JSON格式数据进行数据完整性校验;
在数据完整性校验通过后,将所述JSON格式数据配置相对应的属性信息生成JSON文件。
在一实施例中,所述对所述JSON格式数据进行数据完整性校验的步骤,包括:
若所述JSON格式数据中缺少注解信息,则判定数据完整性校验不通过,反之校验通过。
在一实施例中,根据所述编码文件生成所述页面路由的页面路由文档的步骤,包括:
将所述JSON文件上传到服务器,通过所述服务器将各个插件工程对应的JSON文件整合成列表数据;
下载所述列表数据,将所述列表数据生成HTML格式的页面路由文档。
在一实施例中,所述通过所述服务器将各个插件对应的JSON文件整合成列表数据的步骤,包括:
通过服务器获取各所述JSON文件所对应的插件工程的应用命名和版本标识;
将所述应用名称和版本标识一致的所述JSON文件集合成列表数据。
在一实施例中,所述通过服务器获取各所述JSON文件所对应的插件工程的应用命名和版本标识的步骤之前,还包括:
当所述JSON文件与存储的历史JSON文件中的属性信息均一致,则将所述JSON文件覆盖所述历史JSON文件。
第二方面,本发明实施例提供一种页面路由文档的生成装置,包括:
代码获取模块,用于获取页面路由中各个插件工程对应的源代码,其中,所述源代码中各个类的位置处添加有注解;
注解解析模块,用于在生成页面路由文档时,利用注解处理器解析各个源代码的注解,得到各个源代码的类信息;
数据编码模块,用于将所述类信息生成各个所述插件工程的路由数据,将所述路由数据进行编码成JSON文件;
文档生成模块,用于根据所述JSON文件生成所述页面路由的页面路由文档。
第三方面,本发明实施例还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如第一方面所述的页面路由文档的生成方法。
第四方面,本发明实施例还提供了一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行如第一方面所述页面路由文档的生成方法。
上述实施例提供的页面路由文档的生成方法、装置、计算机设备及存储介质,通过在各个插件工程的源代码中的各个类的位置处添加注解,解析该注解,得到源代码对应的类信息,以获得各个插件工程的路由数据,并将路由数据编码成编码文件,根据编码文件生成页面路由的页面路由文档,从而准确获得了页面路由所需要的路由数据,将路由数据编码成编码文件,以开启强制模式,检查路由数据的完整性和正确性,从而实现页面路由文档的精准生成,提高路由文档的可读性和路由数据的完整性。
本发明附加的方面和优点将在下面的描述中部分给出,这些将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1是一实施例提供的页面路由文档的生成方法的流程图;
图2是一实施例中步骤S130的详细方法流程图;
图3是一实施例中步骤S140的详细方法流程图;
图4是一实施例提供的基于安卓工程的页面路由文档的生成方法的流程图;
图5是一实施例提供的页面路由文档的生成装置的结构示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
本申请将以Android系统为例进行阐述,在实际应用中,可以依据本申请提供方案扩展到其他操作系统中。
图1是一实施例提供的页面路由文档的生成方法的流程图,本实施例提供的页面路由文档的生成方法由计算机设备来执行。如图1所示,该页面路由文档的生成方法可以包括以下步骤:
S110、获取页面路由中各个插件工程对应的源代码,其中,所述源代码中各个类的位置处添加有注解。
项目工程可以包括主工程和多个插件工程,一般情况下,每个插件工程包括用于实现该插件功能的源代码,通常情况下,源代码中包括接口、类、方法及其属性等信息。在实施例中,通过在源代码的类的位置处添加注解,通过该注解提取类的相关信息,如类信息及其属性信息等,类的相关信息包含有用于生成路由文档的路由数据。该注解可以是用户自定义注解,以通过该自定义的注解提取到用于生成路由文档所需要的路由数据,如路由路径、路由名称、路由描述、路由例子、路由所在插件的插件名称和插件标识、功能标识、路由类型、支持版本、参数名称、参数类型、参数描述、参数可用的例子和参数支持的版本等。
在项目工程的源代码中,各个插件工程的属性信息不同,用于区分不同的插件工程,其中,属性信息可以包括每个插件工程所属应用(Application,APP)的应用名称(appId)、插件标识(pluginId)、插件名称(pluginName)和版本标识(version)等。一般而言,应用名称用于标识该插件工程具体所归属的应用,插件标识用于唯一标识该插件工程,插件名称是该插件工程的命名,版本标识用于标记该插件工程的更新版本。示例性的,在同一个应用的不同插件工程,每个插件工程所对应的应用名称相同,其插件名称和插件标识不同。本实施例通过Gradle为每个插件工程配置其对应的应用名称、插件标识、插件名称和版本标识。
在插件工程的类的不同位置处添加不同的注解,以提取插件工程的源代码中对应的类信息。在本实施例中,通过添加自定义的注解:第一注解、第二注解、第三注解和第四注解,以提取出路由数据。这四个自定义的注解所实现的功能不同,各注解中所对应的注解参数也不完全相同。其中,第一注解,用于注解页面路由对应的类;第二注解,用于注解所述第一注解,对所述第一注解的注解参数进行文档补充说明;第三注解,用于注解所述页面路由对应的类的属性;第四注解,用于注解所述第三注解,对所述第三注解中的注解参数进行文档补充说明。
S120、在生成页面路由文档时,利用注解处理器解析各个源代码的注解,得到所述源代码对应的类信息。
在本实施例中,通过自定义的注解设置用于生成页面路由文档所需要的元数据,即路由数据。注解处理器在解析该自定义的注解时,根据该注解及其注解参数生成各个插件工程源代码中所对应的路由文件,其中,路由文件的内容可以包括源代码对应的类信息。
S130、根据所述类信息生成各个所述插件工程的路由数据,并将所述路由数据编码成编码文件。
其中,类信息可以包括用于生成页面路由文档所需要的路由数据。通过解析类信息,得到插件工程的路由数据,如每个插件的页面路由命令和路由名称、路由名、路由路径、路由描述、路由例子、路由所在插件的插件名称和插件标识、功能标志、类名、路由类型、支持版本、参数名称、参数类型、参数描述、参数可用的例子、参数支持的版本等。
一般而言,对得到的路由数据进行编码处理,以得到轻量化或易于处理的数据类型,生成编码文件。在本实施例中,可以将路由数据编码成JSON格式数据,生成JSON文件。JSON采用完全独立于编程语言的文本格式来存储和表示数据,易于机器解析和生成,可用于数据校验,同时JSON是一种轻量级的数据交换格式,能够将路由数据有效快速地进行传输。
S140、根据所述编码文件生成所述页面路由的页面路由文档。
编码文件记载有用于页面路由文档生成的路由数据,将该路由数据结合指定的模板生成页面路由文档。可选的,页面路由文档可以HTML格式呈现,也可以WORD、TXT等格式呈现。页面路由文档包含目录列表和每个路由的页面内容,目录列表包括每个插件的页面路由命令和路由名称,页面内容包括路由名称、路由路径、路由描述、路由例子、路由所在插件和插件标识、功能标识、类名、路由类型、支持版本、参数名称、参数类型、参数描述和参数支持的版本等信息。
本实施例提供的页面路由文档的生成方法,通过获取项目工程中的各个插件工程的源代码,解析源代码中的各个类的位置处添加的注解,得到源代码对应的类信息,获得各个插件工程的路由数据,并将路由数据编码成编码文件,根据编码文件生成页面路由的页面路由文档,从而准确获得了页面路由所需要的路由数据,将路由数据编码成编码文件,以检查路由数据的完整性和正确性,从而实现页面路由文档的精准生成,提高路由文档的可读性和路由数据的完整性。
在一个实施例中,获取页面路由中各个插件工程对应的源代码之前,还可以包括步骤S100:添加注解,其具体包括:
S1001、通过使用关键字创建自定义的注解。
其中,注解包括描述该注解的注解参数。
通过使用编程语言所属的关键字来创建自定义注解。示例性的,在实施例中,通过使用Java语言中的@interface关键字创建自定义的注解及注解所对应的注解参数。
进一步的,本实施例可以通过@interface关键字创建自定义的第一注解@Route、第二注解@RouteDoc、第三注解@Autowired和第四注解@AutowiredDoc。
其中,第一注解为@Route,用于注解页面路由的Java类,第一注解@Route的注解参数可以包括路由命令,如页面路由命令路径(path),路由命令名称(name),页面路由命令路径位于统一资源定位符(URL)的路径部分,用于标识页面路由路径,是路由功能的必备数据,路由命令名称是路由命令的注解解释,用于文档标识。
第二注解为@RouteDoc,用于注解第一注解@Route,对第一注解的注解参数进行文档补充说明,第二注解@RouteDoc的注解参数可以包括:路由命令描述(des)、路由命令例子(eg)、路由开始支持的版本(minVer)。
第三注解为@Autowired,用于注解页面路由中的Java类的属性,第三注解的注解参数可以包括路由参数,如页面路由参数名称(name),命令是否必须携带该参数(required)。
第四注解为@AutowiredDoc,用于注解第三注解@Autowired,对第三注解@Autowired中的注解参数进行文档补充说明。第四注解@AutowiredDoc的注解参数可以包括路由参数,如页面路由参数名称(name)、页面路由参数描述(desc)、参数可用例子(eg)、使用参数的可选的值的范围(limit)、路由参数开始支持的版本(minVer)。
S1002、按照设定的注解规则,将所述注解添加到各个所述插件工程的源代码的相应的类的位置处。
注解规则是指如何使用注解的规则,其可以包括该注解所要求添加的位置、注解所实现的功能、该注解所对应的注解参数以及解析该注解所得到的信息等。在本实施例中,设定的注解规则可以为将第一注解@Route添加到页面路由对应的java类上,将第二注解@RouteDoc添加到第一注解@Route上,将第三注解@Autowired添加到页面路由对应的Java类的属性上,将第四注解@AutowiredDoc添加到第三注解@Autowired上。
按照本实施例中设定的注解规则,将注解分别添加到各插件工程的源代码的相应的类的位置处,以获得类信息。类信息包含有用于生成页面路由文档的路由数据。
为了使本发明的技术方案更为清晰,更为便于理解,下面对本技术方案中的各个步骤的具体的实现过程和方式加以详细的描述。
图2是一实施例中步骤S130的详细方法流程图,如图2所示,在一实施例中,步骤S130将所述路由数据进行编码成编码文件的步骤,包括:
S1301、将所述路由数据编码成JSON格式数据,并对所述JSON格式数据进行数据完整性校验。
在编译各插件工程的源代码以收集路由数据时,可以对路由数据的完整性进行校验。需要说明的是,数据完整性校验是在开启强制模式功能下进行的,强制模式功能是指当项目源代码中缺少注解信息,如注解或注解参数,强制阻断项目源代码的编译的功能模式。在本实施例中,如果数据完整性校验不通过且开启了强制模式功能,会在客户端显示界面上弹出提醒对话框,以提醒开发人员进行注解补充,及时在源代码处添加相应的注解或补充注解参数。
具体的,所述对所述JSON格式数据进行数据完整性校验的步骤,包括:若所述JSON格式数据中缺少注解信息,则判定数据完整性校验不通过,反之,若JSON格式数据中注解信息完整,则判定数据完整性校验通过。其中所述注解信息包括:注解和所述注解中的注解参数。
在本实施例中,可以通过编写代码stickMode:"true"以开启强制模式。在强制模式下,若源代码中没有添加第二注解@RouteDoc或第四注解@AutowiredDoc时,阻断源代码的编译,或在源代码注解中缺少注解参数也会阻断源代码的编译,并抛出异常阻断编译并提示错误信息,提醒开发人员在缺少注解信息的位置上对相应的注解信息进行补充。
S1302、在数据完整性校验通过后,将所述JSON格式数据配置相对应的属性信息生成JSON文件。
其中,属性信息可以包括:插件工程的应用名称、插件标识、插件名称和版本标识。
在路由数据收集和完整性校验通过后,将各个插件工程的JSON格式的路由数据配置相对应的属性信息,如应用名称、插件标识、插件名称和版本标识,生成JSON文件后,将JSON文件上传至服务器。其中,应用名称、插件标识、插件名称和版本标识用于标识JSON文件。
图3是一实施例中步骤S140的详细方法流程图,如图3所示,在一实施例中,步骤S140根据所述编码文件生成所述页面路由的页面路由文档的步骤,包括:
S1401、将所述JSON文件上传到服务器,通过所述服务器将各个插件工程对应的JSON文件整合成列表数据。
通过服务器获取各所述JSON文件所对应的插件工程的属性信息,如应用名称、插件标识、插件名称和版本标识,并将应用名称和版本标识均一致的各JSON文件集合成列表数据,以便于直观地查看同一应用名称下同一版本标识的各个插件工程的路由数据。
进一步的,当服务器接收到的JSON文件与服务器存储的历史JSON文件中的属性信息,即插件工程的应用名称、插件标识、插件名称和版本标识均一致时,则将新接收到的JSON文件覆盖之前接收并存储的历史JSON文件,以实现路由数据的更新,避免同一路由数据的重复存储,造成数据冗余而增加存储资源的损耗。
S1402、下载所述列表数据,将所述列表数据生成HTML格式的页面路由文档。
项目工程中的主工程运行页面路由文档生成任务,根据项目工程各插件工程的属性信息,查找出相对应的列表数据,并将该列表数据从服务器下载至客户端。例如,从服务器中查找出与目标项目工程的应用名称和版本标识均一致的列表数据,获取并下载该列表数据至客户端,其中该列表数据包括一个或多个插件工程的路由数据。列表数据下载完成后,按照选定的模板,将该列表数据生成HTML格式的页面路由文档,HTML格式的页面路由文档的可读性高,美观易用。
结合下面附图4,图4是一实施例提供的基于安卓工程的页面路由文档的生成方法的流程图。
S401、通过Gradle配置每个插件工程的应用名称、插件标识、插件名称、版本标识。
同一应用下的每个插件工程所对应的应用名称相同,但插件标识和插件名称不同。在实际应用中,为了对插件工程进行优化,会对插件工程的源代码进行更新,从而形成不同的版本的源代码,版本标识用于区别不同的插件工程的不同版本的源代码。
下面是本实施例提供的通过Gradle配置每个插件工程的应用名称、插件标识、插件名称、版本标识的代码段。
S402、配置是否开启强制模式。
在强制模式下,对各插件工程的源代码进行编译时,会自动检测注解信息,如注解和注解参数是否完整,如果缺少部分或全部注解,如第二注解或第四注解,抑或缺少注解参数,如路由命令名称,会导致编译阻断。此时,需要开发人员在缺少注解信息的位置将注解信息补全后再进行编译。开启强制模式,对路由数据的完整性进行校验,提高了路由文档中路由数据的准确性和完整性。
下面是本实施例提供的通过Gradle配置每个插件工程的配置是否开启强制模式的代码段。开启强制模式,则stickMode的参数为true。
S403、通过Gradle为主工程配置JSON文件生成路径和HTML文件生成路径。
主工程执行页面路由文档生成任务过程中,JSON文件会按照配置的JSON文件生成路径保存起来,页面路由文档也会按照配置的HTML文件生成路径保存起来。
下面是本实施例提供的通过Gradle配置主工程配置JSON文件生成路径和HTML文件生成路径的代码段。根据该代码段可以得到路由数据的JSON文件和页面路由文档的HTML文件的保存位置。
S404、创建自定义的注解,并将该注解添加到各个插件工程的源代码相应的类的位置处。
其中,注解包括第一注解@Route、第二注解@RouteDoc、第三注解@Autowired和第四注解@AutowiredDoc,各注解包含有描述该注解的注解参数。
以下为通过@interface关键字进行定义第一注解@Route、第二注解@RouteDoc、第三注解@Autowired和第四注解@AutowiredDoc的代码段的例子。
从上面的代码段可知,通过@interface关键字对第一注解@Route、第二注解@RouteDoc、第三注解@Autowired和第四注解@AutowiredDoc进行自定义,如自定义第一注解@Route,用于注解Java类,其注解参数包括路由命令路径、路由命令名称、路由标识、组别和优先级等,其中,路由命令路径、路由命令名称和组别为字符串类型,路由标识和优先级等为整型类型;第二注解@RouteDoc,其注解参数包括路由命令、路由使用的例子、路由开始支持的版本等;第三注解@Autowired用于注解Java类的属性,其注解参数包括如路由参数、路由命令是否必须携带该参数等;第四注解@AutowiredDoc,其注解参数包括参数描述、参数可用的例子、使用参数的可选的值的范围、路由参数开始支持的版本等。
将第一注解@Route注解在页面路由对于的Java类上,将第二注解@RouteDoc注解在第一注解@Route上,将第三注解@Autowired注解在页面路由Java类的属性上,将第四注解@AutowiredDoc注解在第三注解@Autowired上。
上述步骤S401、S402、S403和S404为源代码运行前的配置过程,包括为各插件工程配置属性信息,如应用名称、插件标识、插件名称、版本标识等,配置是否开启强制模式,创建自定义的注解等。
需要说明的是,步骤S401、S402、S403和S404并非限定于配置的顺序,其可以是合并配置,其序号仅用于区分不同的配置功能。
S405、在配置开启强制模式下,客户端运行编译各个插件工程对应的源代码。
客户端运行编译各个插件工程对应的源代码,注解处理器解析源代码中的注解及其注解参数,获得页面路由中各个插件的路由数据。
S406、判断路由数据是否通过数据完整性校验,若通过数据完整性校验,则执行步骤S407,否则返回步骤S403。
将编译得到的路由数据编码成JSON格式数据,便于进行数据完整性校验和校验通过后的路由数据的传输。若数据完整性校验通过,则说明不缺少注解和注解参数,得到的路由数据完整。若数据完整性校验不通过,则说明缺少了注解或注解参数,所得到的路由数据不完整,需要在缺少注解或注解参数的地方补充注解或注解参数,以使得提取到的路由数据能够完整地描述页面跳转的情况。
S407、客户端将编译通过后的插件工程的路由数据上传至服务器。
客户端编译通过后得到插件工程完整的路由数据,将路由数据上传至服务器,以通过服务器对路由数据进行整合处理。
S408、服务器将应用名称和版本标识相同的多个插件工程的路由数据整合为列表集合。
服务器具有较强的数据处理和存储能力,对客户端上传的路由数据进行整合成同一应用名称和版本标识的列表集合,并存储起来。列表集合包括属于同一应用的同一版本的多个插件工程的路由数据。
S409、客户端根据列表集合和模板引擎生成页面路由文档。
客户端下载路由数据的列表集合,由主工程进行路由文档的生成,通过模板引擎和该路由数据的列表集合,生成HTML格式的页面路由文档。其中,模板引擎用于生成特定格式的文档。
S410、结束。
上述实施例提供的基于安卓工程的页面路由文档的生成方法,通过自定义的第一注解、第二注解、第三注解和第四注解,注解处理器解析出这四个注解及其注解参数,以得到各插件工程的路由数据,使得生成的页面路由文档更加准确完整。此外,通过Gradle配置每个插件工程的应用名称、插件标识、插件名称、版本标识,将不同的插件工程的路由数据配置上传至服务器,可以为同一应用的不同插件工程生成一份总的路由文档,简单快捷,这是JavaDoc所无法实现的。将路由数据编码成JSON格式数据,并通过配置开启强制模式,以检查路由数据的完整性和正确性,进一步提高页面路由文档生成的准确性和完整性。
下面对页面路由文档的生成装置的相关实施例进行详细阐述。
图5是一实施例提供的页面路由文档的生成装置的结构示意图,如图5所示,该页面路由文档的生成装置包括:代码获取模块510、注解解析模块520、数据编码模块530以及文档生成模块540。
其中,代码获取模块510,用于获取页面路由中各个插件工程对应的源代码,其中,所述源代码中各个类的位置处添加有注解;
注解解析模块520,用于在生成页面路由文档时,利用注解处理器解析各个源代码的注解,得到各个源代码的类信息;
数据编码模块530,用于将所述类信息生成各个所述插件工程的路由数据,将所述路由数据进行编码成JSON文件;
文档生成模块540,用于根据所述JSON文件生成所述页面路由的页面路由文档。
本实施例提供的页面路由文档的生成装置,通过获取安卓工程中的各个插件工程的源代码,解析源代码中的各个类的位置处添加的注解及其定义的注解参数,得到源代码对应的类信息,进行获得各个插件工程的路由数据,并将路由数据编码成JSON文件,根据JSON文件生成页面路由的页面路由文档,从而准确获得了页面路由所需要的路由数据,将路由数据编码成JSON文件,以检查路由数据的完整性和正确性,从而实现安卓工程页面路由文档的精准生成,提高路由文档的可读性。
在一实施例中,该页面路由文档的生成装置还包括:注解创建模块和注解添加模块。其中,注解创建模块,用于通过使用关键字创建自定义的注解;注解添加模块,用于按照设定的注解规则,将所述注解添加到各个所述插件工程的源代码相应的类的位置处。
其中,所述注解包括:第一注解,用于注解页面路由对应的类;第二注解,用于注解所述第一注解,对所述第一注解的注解参数进行文档补充说明;第三注解,用于注解所述页面路由对应的类的属性;第四注解,用于注解所述第三注解,对所述第三注解中的注解参数进行文档补充说明。
在一实施例中,数据编码模块530,用于将所述路由数据编码成JSON格式数据,并对所述JSON格式数据进行数据完整性校验;在数据完整性校验通过后,将所述JSON格式数据配置相对应的属性信息生成JSON文件。
在一实施例中,数据编码模块530,还用于若所述JSON格式数据中缺少注解信息,则判定数据完整性校验不通过,反之,校验通过,其中所述注解信息包括:注解和所述注解中的注解参数。
在一实施例中,文档生成模块540,还用于将所述JSON文件上传到服务器,通过所述服务器将各个插件工程对应的JSON文件整合成列表数据;下载所述列表数据,将所述列表数据生成HTML格式的页面路由文档。
在一实施例中,文档生成模块540,进一步用于通过服务器获取各所述JSON文件所对应的插件工程的应用命名和版本标识;将所述应用名称和版本标识一致的所述JSON文件集合成列表数据。
在一实施例中,文档生成模块540,还用于当所述JSON文件与存储的历史JSON文件中的属性信息均一致,则将所述JSON文件覆盖所述历史JSON文件。
本发明实施例还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一实施例中的页面路由文档的生成方法。
上述提供的计算机设备执行上述任意实施例提供的页面路由文档的生成方法时,具备相应的功能和有益效果。
本发明实施例还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行一种页面路由文档的生成方法,包括:
获取页面路由中各个插件工程对应的源代码,其中,所述源代码中各个类的位置处添加有注解;
在生成路由文档时,利用注解处理器解析各个源代码的注解,得到所述源代码对应的类信息;
根据所述类信息生成各个所述插件工程的路由数据,并将所述路由数据编码成编码文件;
根据所述编码文件生成所述页面路由的页面路由文档。
当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的页面路由文档的生成方法操作,还可以执行本发明任意实施例所提供的页面路由文档的生成方法中的相关操作,且具备相应的功能和有益效果。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明任意实施例所述的页面路由文档的生成方法。
应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
以上所述仅是本发明的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (9)

1.一种页面路由文档的生成方法,其特征在于,包括以下步骤:
获取页面路由中各个插件工程对应的源代码,其中,所述源代码中各个类的位置处添加有注解;
在生成页面路由文档时,利用注解处理器解析各个源代码的注解,得到所述源代码对应的类信息;
根据所述类信息生成各个所述插件工程的路由数据,并将所述路由数据编码成编码文件,所述路由数据包括每个插件的页面路由命令和路由名称、路由名、路由路径、路由描述、路由例子、路由所在插件的插件名称和插件标识、功能标志、类名、路由类型、支持版本、参数名称、参数类型、参数描述、参数可用的例子、参数支持的版本;
根据所述编码文件生成所述页面路由的页面路由文档;
所述将所述路由数据编码成编码文件的步骤,包括:
将所述路由数据编码成JSON格式数据,并对所述JSON格式数据进行数据完整性校验;
在数据完整性校验通过后,将所述JSON格式数据配置相对应的属性信息生成JSON文件;
根据所述编码文件生成所述页面路由的页面路由文档的步骤,包括:
将所述JSON文件上传到服务器,通过所述服务器将各个插件工程对应的JSON文件整合成列表数据;
下载所述列表数据,将所述列表数据生成HTML格式的页面路由文档。
2.根据权利要求1所述的页面路由文档的生成方法,其特征在于,获取页面路由中各个插件工程对应的源代码之前,还包括:
通过使用关键字创建自定义的注解;
按照设定的注解规则,将所述注解添加到各个所述插件工程的源代码的相应的类的位置处。
3.根据权利要求1所述的页面路由文档的生成方法,其特征在于,所述注解包括:
第一注解,用于注解页面路由对应的类;
第二注解,用于注解所述第一注解,对所述第一注解的注解参数进行文档补充说明;
第三注解,用于注解所述页面路由对应的类的属性;
第四注解,用于注解所述第三注解,对所述第三注解中的注解参数进行文档补充说明。
4.根据权利要求1所述的页面路由文档的生成方法,其特征在于,所述对所述JSON格式数据进行数据完整性校验的步骤,包括:
若所述JSON格式数据中缺少注解信息,则判定数据完整性校验不通过,反之,校验通过。
5.根据权利要求1所述的页面路由文档的生成方法,其特征在于,所述通过所述服务器将各个插件对应的JSON文件整合成列表数据的步骤,包括:
通过服务器获取各所述JSON文件所对应的插件工程的应用名称和版本标识;
将所述应用名称和版本标识一致的所述JSON文件集合成列表数据。
6.根据权利要求5所述的页面路由文档的生成方法,其特征在于,所述通过服务器获取各所述JSON文件所对应的插件工程的应用名称和版本标识的步骤之前,还包括:
当所述JSON文件与存储的历史JSON文件中的属性信息均一致,则将所述JSON文件覆盖所述历史JSON文件。
7.一种页面路由文档的生成装置,其特征在于,包括:
代码获取模块,用于获取页面路由中各个插件工程对应的源代码,其中,所述源代码中各个类的位置处添加有注解;
注解解析模块,用于在生成页面路由文档时,利用注解处理器解析各个源代码的注解,得到各个源代码的类信息;
数据编码模块,用于将所述类信息生成各个所述插件工程的路由数据,将所述路由数据进行编码成编码文件,所述路由数据包括每个插件的页面路由命令和路由名称、路由名、路由路径、路由描述、路由例子、路由所在插件的插件名称和插件标识、功能标志、类名、路由类型、支持版本、参数名称、参数类型、参数描述、参数可用的例子、参数支持的版本;
所述数据编码模块,还用于将所述路由数据编码成JSON格式数据,并对所述JSON格式数据进行数据完整性校验;在数据完整性校验通过后,将所述JSON格式数据配置相对应的属性信息生成JSON文件;
文档生成模块,用于根据所述编码文件生成所述页面路由的页面路由文档;
所述文档生成模块,还用于将所述JSON文件上传到服务器,通过所述服务器将各个插件工程对应的JSON文件整合成列表数据;下载所述列表数据,将所述列表数据生成HTML格式的页面路由文档。
8.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1-7任一项所述的页面路由文档的生成方法的步骤。
9.一种包含计算机可执行指令的存储介质,其特征在于,所述计算机可执行指令在由计算机处理器执行时用于执行如权利要求1-7任一项所述页面路由文档的生成方法的步骤。
CN201910570352.3A 2019-06-27 2019-06-27 页面路由文档的生成方法、装置、计算机设备及存储介质 Active CN110308900B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910570352.3A CN110308900B (zh) 2019-06-27 2019-06-27 页面路由文档的生成方法、装置、计算机设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910570352.3A CN110308900B (zh) 2019-06-27 2019-06-27 页面路由文档的生成方法、装置、计算机设备及存储介质

Publications (2)

Publication Number Publication Date
CN110308900A CN110308900A (zh) 2019-10-08
CN110308900B true CN110308900B (zh) 2023-08-08

Family

ID=68077076

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910570352.3A Active CN110308900B (zh) 2019-06-27 2019-06-27 页面路由文档的生成方法、装置、计算机设备及存储介质

Country Status (1)

Country Link
CN (1) CN110308900B (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111124420B (zh) * 2019-12-19 2023-06-20 北京百度网讯科技有限公司 编译方法、装置、电子设备及可读存储介质
CN113127776A (zh) * 2019-12-31 2021-07-16 深圳云天励飞技术有限公司 面包屑路径生成方法、装置及终端设备
CN111324359B (zh) * 2020-02-27 2022-04-29 支付宝(杭州)信息技术有限公司 插件部署方法及装置
CN111857809B (zh) * 2020-07-30 2024-07-30 上海妙一生物科技有限公司 一种前端开发文件更新方法、装置及电子设备
CN112416612B (zh) * 2020-08-13 2023-03-28 上海哔哩哔哩科技有限公司 服务调用方法、装置、计算机设备和可读存储介质
CN112199092B (zh) * 2020-09-17 2024-03-15 上海硬通网络科技有限公司 应用的开发方法、装置及电子设备
CN112230988A (zh) * 2020-10-16 2021-01-15 蜂助手股份有限公司 接口文档的生成方法、装置、计算机设备和存储介质
CN113821193B (zh) * 2020-11-26 2023-09-26 北京京东振世信息技术有限公司 一种信息生成的方法、装置和存储介质
CN113608726B (zh) * 2021-07-30 2023-08-11 三一专用汽车有限责任公司 代码生成方法、装置、电子设备及存储介质
CN113645138B (zh) * 2021-08-09 2022-12-09 杭州安恒信息技术股份有限公司 一种路由配置生成方法、装置、电子设备及存储介质
CN113626747A (zh) * 2021-08-16 2021-11-09 北京沃东天骏信息技术有限公司 面包屑导航的生成方法和装置
CN114253630B (zh) * 2021-12-23 2023-07-25 上海新炬网络信息技术股份有限公司 基于Java切面修改Form表单变化信息实现日志保存的方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106325969A (zh) * 2016-08-23 2017-01-11 上海创景计算机系统有限公司 需求变更的逆向追踪系统
CN107341014A (zh) * 2017-06-27 2017-11-10 乐视致新电子科技(天津)有限公司 电子设备、技术文档的生成方法及装置
CN107885499A (zh) * 2017-10-19 2018-04-06 平安壹钱包电子商务有限公司 一种接口文档生成方法及终端设备
CN108241503A (zh) * 2016-12-23 2018-07-03 北京国双科技有限公司 注释说明的生成方法及装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10394552B2 (en) * 2016-05-17 2019-08-27 Dropbox, Inc. Interface description language for application programming interfaces

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106325969A (zh) * 2016-08-23 2017-01-11 上海创景计算机系统有限公司 需求变更的逆向追踪系统
CN108241503A (zh) * 2016-12-23 2018-07-03 北京国双科技有限公司 注释说明的生成方法及装置
CN107341014A (zh) * 2017-06-27 2017-11-10 乐视致新电子科技(天津)有限公司 电子设备、技术文档的生成方法及装置
CN107885499A (zh) * 2017-10-19 2018-04-06 平安壹钱包电子商务有限公司 一种接口文档生成方法及终端设备

Also Published As

Publication number Publication date
CN110308900A (zh) 2019-10-08

Similar Documents

Publication Publication Date Title
CN110308900B (zh) 页面路由文档的生成方法、装置、计算机设备及存储介质
Zhou et al. API deprecation: a retrospective analysis and detection method for code examples on the web
Nguyen et al. Clone management for evolving software
US10621212B2 (en) Language tag management on international data storage
CN102521316B (zh) 用于日志分析的模式匹配框架
CN106843840B (zh) 一种基于相似度分析的源代码版本演化注释复用方法
US20110161938A1 (en) Including defect content in source code and producing quality reports from the same
KR20150042877A (ko) 레코드 포맷 정보의 관리
WO2020206837A1 (zh) 代码片段定位方法、装置、计算机设备和存储介质
Nam et al. Marble: Mining for boilerplate code to identify API usability problems
CN112162751A (zh) 一种接口文档自动生成方法及系统
CN113157315A (zh) 一种软件不同版本的差异信息识别方法、装置、设备及介质
KR20190058141A (ko) 문서로부터 추출되는 데이터를 생성하는 방법 및 그 장치
CN108319466A (zh) 一种配置信息的恢复方法和装置
US8719766B1 (en) System and method for identifying and adding files to a project manifest
Raghavan A framework for identifying associations in digital evidence using metadata
CN113641523B (zh) 一种日志处理方法及装置
Dramko et al. DIRE and its data: Neural decompiled variable renamings with respect to software class
CN114816364A (zh) 基于Swagger动态生成范本文件的方法、装置及应用
EP2535813B1 (en) Method and device for generating an alert during an analysis of performance of a computer application
CN114356404A (zh) 接口文档生成方法、系统和计算机可读存储介质
Prause Maintaining fine-grained code metadata regardless of moving, copying and merging
Fraternali et al. Almost rerere: An approach for automating conflict resolution from similar resolved conflicts
Al-Wadeai et al. Integration of Hawk for Model Metrics in the MEASURE Platform.
CN117707547B (zh) 一种解析java项目间引用关系的方法

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
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20210114

Address after: 511442 3108, 79 Wanbo 2nd Road, Nancun Town, Panyu District, Guangzhou City, Guangdong Province

Applicant after: GUANGZHOU CUBESILI INFORMATION TECHNOLOGY Co.,Ltd.

Address before: 511442 29 floor, block B-1, Wanda Plaza, Huambo business district, Panyu District, Guangzhou, Guangdong.

Applicant before: GUANGZHOU HUADUO NETWORK TECHNOLOGY Co.,Ltd.

EE01 Entry into force of recordation of patent licensing contract
EE01 Entry into force of recordation of patent licensing contract

Application publication date: 20191008

Assignee: GUANGZHOU HUADUO NETWORK TECHNOLOGY Co.,Ltd.

Assignor: GUANGZHOU CUBESILI INFORMATION TECHNOLOGY Co.,Ltd.

Contract record no.: X2021440000054

Denomination of invention: Generation method, device, computer device and storage medium of page routing document

License type: Common License

Record date: 20210208

GR01 Patent grant
GR01 Patent grant