[發(fā)明專利]生成API文檔的方法、系統(tǒng)、設(shè)備及存儲介質(zhì)在審
| 申請?zhí)枺?/td> | 202110568595.0 | 申請日: | 2021-05-25 |
| 公開(公告)號: | CN113296752A | 公開(公告)日: | 2021-08-24 |
| 發(fā)明(設(shè)計(jì))人: | 盧俊杰 | 申請(專利權(quán))人: | 平安養(yǎng)老保險(xiǎn)股份有限公司 |
| 主分類號: | G06F8/30 | 分類號: | G06F8/30;G06F8/41;G06F8/73;G06F9/455 |
| 代理公司: | 北京英特普羅知識產(chǎn)權(quán)代理有限公司 11015 | 代理人: | 饒文彬 |
| 地址: | 200120 上海市浦東新區(qū)自由*** | 國省代碼: | 上海;31 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 生成 api 文檔 方法 系統(tǒng) 設(shè)備 存儲 介質(zhì) | ||
一種生成API文檔的方法、系統(tǒng)、設(shè)備及存儲介質(zhì),其中生成API文檔的方法包括以下步驟:通過在Java虛擬機(jī)中加載預(yù)設(shè)的代理程序從所述Java虛擬機(jī)中運(yùn)行的Java字節(jié)碼中獲取所有的Java類;從獲取的所述Java類中,過濾出暴露目標(biāo)API的類,所述目標(biāo)API至少存在一個;從所述暴露目標(biāo)API的類中過濾出所述暴露目標(biāo)API的方法;從所述暴露目標(biāo)API的方法中提取出參數(shù)信息以及注解信息;將每一個目標(biāo)API的注解信息與參數(shù)信息進(jìn)行合并,生成所述每一個目標(biāo)API對應(yīng)的第一Java對象,并將所述第一Java對象存儲至內(nèi)存中;將所述第一Java對象轉(zhuǎn)化成第一Json報(bào)文;將所述第一Json報(bào)文導(dǎo)入Swagger框架以通過所述Swagger框架將所述第一Json報(bào)文轉(zhuǎn)化成API文檔。
技術(shù)領(lǐng)域
本發(fā)明涉及于軟件開發(fā)技術(shù)領(lǐng)域,尤其一種生成API文檔的方法、系統(tǒng)、設(shè)備及存儲介質(zhì)。
背景技術(shù)
Java是現(xiàn)有的具有可移植性的用于編寫程序的高級編程語言,其中系統(tǒng)和應(yīng)用程序通過應(yīng)用程序接口(API,Application Programming Interface)進(jìn)行通信。其中API(Application Programming Interface,應(yīng)用程序編程接口)是一些預(yù)先定義的函數(shù),目的是提供應(yīng)用程序與開發(fā)人員基于某軟件或硬件得以訪問一組例程的能力,而又無需訪問源碼,或理解內(nèi)部工作機(jī)制的細(xì)節(jié);而API文檔是一個關(guān)于API的技術(shù)內(nèi)容交付文件,包含如何有效地使用和集成API的說明。它是一個簡明的參考手冊,包含了使用API所需的所有信息,詳細(xì)介紹了函數(shù)、類、返回類型、參數(shù)等。
然而在使用Java進(jìn)行研發(fā)過程中,跨平臺或跨系統(tǒng)的API調(diào)用需要通過使用API文檔中關(guān)于API的調(diào)用及其涉及到的參數(shù)的解釋說明來進(jìn)行通信交互規(guī)范。一般來說,API文檔通過人工撰寫的方式或者自動化生成的方式來形成的。
對于API文檔自動生成的方式來說,現(xiàn)業(yè)內(nèi)在開發(fā)過程中,API文檔會通過使用Swagger這個框架來生成,但是通過Swagger框架進(jìn)行API的文檔生成存在著以下問題。
問題一、在Swagger框架下需要研發(fā)人員在編寫業(yè)務(wù)代碼的同時在代碼中加入大量的關(guān)于Swagger框架的Swagger注解用來生成相關(guān)的API文檔,而Swagger注解隨著業(yè)務(wù)代碼在編譯階段帶入Java字節(jié)碼中,在業(yè)務(wù)代碼實(shí)際運(yùn)行的時候Swagger框架的功能會一直占用業(yè)務(wù)代碼的Java虛擬機(jī)(JVM)的內(nèi)存。
問題二、在項(xiàng)目后期將Swagger注解剝離出來十分困難。
問題三、開發(fā)人員修改了API之后需要不斷維護(hù)侵入式地跟進(jìn)業(yè)務(wù)代碼的Swagger注解以維護(hù)API文檔和代碼的一致性,消耗了開發(fā)人員的時間和精力的同時還增加了項(xiàng)目推進(jìn)的時間。
綜上所述,由于通過Swagger生成API文檔的過程中,至少存在上述3個問題,導(dǎo)致使用Swagger注解來生成API文檔時具有許多不便和負(fù)擔(dān)。
發(fā)明內(nèi)容
本發(fā)明的一個目的在于提供一種生成API文檔的方法、系統(tǒng)、設(shè)備及存儲介質(zhì),其中所述生成API文檔的方法根據(jù)API的Java字節(jié)碼并通過Swagger框架生成API文檔,以減少代碼注解對開發(fā)人員和計(jì)算機(jī)產(chǎn)生負(fù)擔(dān)。
為了實(shí)現(xiàn)上述目的,本發(fā)明提供一種生成API文檔的方法,包括以下步驟:
通過在Java虛擬機(jī)中加載預(yù)設(shè)的代理程序從所述Java虛擬機(jī)中運(yùn)行的Java字節(jié)碼中獲取所有的Java類;
從獲取的所述Java類中,過濾出暴露目標(biāo)API的類,所述目標(biāo)API至少存在一個;
從所述暴露目標(biāo)API的類中過濾出所述暴露目標(biāo)API的方法;
從所述暴露目標(biāo)API的方法中提取出參數(shù)信息以及注解信息;
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于平安養(yǎng)老保險(xiǎn)股份有限公司,未經(jīng)平安養(yǎng)老保險(xiǎn)股份有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202110568595.0/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。





