提取模塊52具體用于:從類加載器中提取方法函數(shù)的注解信息;根據(jù)方法函數(shù)的注解信息,獲取方法函數(shù)的描述信息。
[0150]在一可選實(shí)施方式中,如圖6所示,該裝置還包括:文檔處理模塊54。
[0151]文檔處理模塊54,用于按照預(yù)設(shè)的數(shù)據(jù)格式,對(duì)提取模塊52提取的方法函數(shù)的描述信息進(jìn)行處理,以生成API的說明文檔;輸出API的說明文檔。
[0152]在一可選實(shí)施方式中,如圖6所示,該裝置還包括:測試模塊55。
[0153]測試模塊55,用于在測試用例的控制下,運(yùn)行前端調(diào)用代碼以在測試環(huán)境下模擬對(duì)API的調(diào)用,并根據(jù)調(diào)用結(jié)果輸出測試結(jié)果,以實(shí)現(xiàn)對(duì)API的測試。
[0154]值得說明的是,在前后端分離的Web開發(fā)模式中,上述訪問模塊51和提取模塊52可部署于后端實(shí)現(xiàn);而生成模塊53、文檔處理模塊54及測試模塊55可部署于前端后端之間,如圖7所示的API平臺(tái)中;生成模塊53生成的前端調(diào)用代碼以及文檔處理模塊54輸出的API的說明文檔可部署于前端,供前端使用。本實(shí)施例提供的調(diào)用代碼生成裝置的部署實(shí)現(xiàn)并不限于圖7所示,根據(jù)應(yīng)用場景的不同,其部署實(shí)施可視具體應(yīng)用場景而定。
[0155]本實(shí)施例提供的調(diào)用代碼生成裝置,利用反射機(jī)制,訪問加載與API具有映射關(guān)系的方法函數(shù)所屬的類的類加載器,從中提取方法函數(shù)的描述信息,根據(jù)方法函數(shù)的描述信息動(dòng)態(tài)生成API的前端調(diào)用代碼,從而實(shí)現(xiàn)API的前端調(diào)用代碼的自動(dòng)生成,不需要用戶手動(dòng)編寫API的調(diào)用代碼,達(dá)到節(jié)約人力成本的目的;另外,在該生成過程中,無需像現(xiàn)有技術(shù)那樣人工維護(hù)API的說明文檔,也就不會(huì)出現(xiàn)現(xiàn)有技術(shù)中由于人員的疏忽,或其它原因造成在API更新后沒有及時(shí)更新其說明文檔進(jìn)而導(dǎo)致前端沒有及時(shí)更新調(diào)用代碼的問題,因此在基于該前端調(diào)用代碼調(diào)用API時(shí),也就不會(huì)出現(xiàn)API變更時(shí)出現(xiàn)的不一致導(dǎo)致調(diào)用不符合預(yù)期、出錯(cuò)等問題,有利于提高API調(diào)用效率。
[0156]所屬領(lǐng)域的技術(shù)人員可以清楚地了解到,為描述的方便和簡潔,上述描述的系統(tǒng),裝置和單元的具體工作過程,可以參考前述方法實(shí)施例中的對(duì)應(yīng)過程,在此不再贅述。
[0157]在本發(fā)明所提供的幾個(gè)實(shí)施例中,應(yīng)該理解到,所揭露的系統(tǒng),裝置和方法,可以通過其它的方式實(shí)現(xiàn)。例如,以上所描述的裝置實(shí)施例僅僅是示意性的,例如,所述單元的劃分,僅僅為一種邏輯功能劃分,實(shí)際實(shí)現(xiàn)時(shí)可以有另外的劃分方式,例如多個(gè)單元或組件可以結(jié)合或者可以集成到另一個(gè)系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點(diǎn),所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,裝置或單元的間接耦合或通信連接,可以是電性,機(jī)械或其它的形式。
[0158]所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)網(wǎng)絡(luò)單元上??梢愿鶕?jù)實(shí)際的需要選擇其中的部分或者全部單元來實(shí)現(xiàn)本實(shí)施例方案的目的。
[0159]另外,在本發(fā)明各個(gè)實(shí)施例中的各功能單元可以集成在一個(gè)處理單元中,也可以是各個(gè)單元單獨(dú)物理存在,也可以兩個(gè)或兩個(gè)以上單元集成在一個(gè)單元中。上述集成的單元既可以采用硬件的形式實(shí)現(xiàn),也可以采用硬件加軟件功能單元的形式實(shí)現(xiàn)。
[0160]上述以軟件功能單元的形式實(shí)現(xiàn)的集成的單元,可以存儲(chǔ)在一個(gè)計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中。上述軟件功能單元存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)中,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)或處理器(processor)執(zhí)行本發(fā)明各個(gè)實(shí)施例所述方法的部分步驟。而前述的存儲(chǔ)介質(zhì)包括:U盤、移動(dòng)硬盤、只讀存儲(chǔ)器(Read-Only Memory, ROM)、隨機(jī)存取存儲(chǔ)器(Random Access Memory, RAM)、磁碟或者光盤等各種可以存儲(chǔ)程序代碼的介質(zhì)。
[0161]最后應(yīng)說明的是:以上實(shí)施例僅用以說明本發(fā)明的技術(shù)方案,而非對(duì)其限制;盡管參照前述實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對(duì)前述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對(duì)其中部分技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實(shí)施例技術(shù)方案的精神和范圍。
【主權(quán)項(xiàng)】
1.一種應(yīng)用程序接口 API調(diào)用方法,其特征在于,包括: 獲取待調(diào)用API的前端調(diào)用代碼,其中,所述前端調(diào)用代碼是預(yù)先根據(jù)與所述待調(diào)用API具有映射關(guān)系的方法函數(shù)的描述信息動(dòng)態(tài)生成的; 運(yùn)行所述前端調(diào)用代碼,以對(duì)所述待調(diào)用API進(jìn)行調(diào)用。2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述預(yù)先根據(jù)與所述待調(diào)用API具有映射關(guān)系的方法函數(shù)的描述信息動(dòng)態(tài)生成所述前端調(diào)用代碼,包括: 利用反射機(jī)制,訪問加載所述方法函數(shù)所屬的類的類加載器; 從所述類加載器中提取所述方法函數(shù)的描述信息; 根據(jù)所述方法函數(shù)的描述信息,對(duì)預(yù)設(shè)的調(diào)用代碼模板進(jìn)行渲染,以生成所述前端調(diào)用代碼。3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述根據(jù)所述方法函數(shù)的描述信息,對(duì)預(yù)設(shè)的調(diào)用代碼模板進(jìn)行渲染,以生成所述前端調(diào)用代碼之后,包括: 根據(jù)檢測需求,在所述前端調(diào)用代碼增加符合所述檢測需求的功能代碼,以形成測試版本的前端調(diào)用代碼;和/或 對(duì)所述前端調(diào)用代碼進(jìn)行代碼壓縮,以形成發(fā)布版本的前端調(diào)用代碼。4.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述從所述類加載器中提取所述方法函數(shù)的描述信息,包括: 從所述類加載器中提取所述方法函數(shù)的注解信息; 根據(jù)所述方法函數(shù)的注解信息,獲取所述方法函數(shù)的描述信息。5.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述從所述類加載器中提取所述方法函數(shù)的描述信息之后,包括: 按照預(yù)設(shè)的數(shù)據(jù)格式,對(duì)所述方法函數(shù)的描述信息進(jìn)行處理,以生成所述待調(diào)用API的說明文檔; 輸出所述待調(diào)用API的說明文檔。6.根據(jù)權(quán)利要求5所述的方法,其特征在于,所述獲取待調(diào)用API的前端調(diào)用代碼,包括: 根據(jù)所述待調(diào)用API的說明文檔,從軟件開發(fā)工具包SDK中獲取與所述待調(diào)用API的說明文檔相匹配的前端調(diào)用代碼。7.根據(jù)權(quán)利要求1-6任一項(xiàng)所述的方法,其特征在于,還包括: 在測試用例的控制下,運(yùn)行所述前端調(diào)用代碼以在測試環(huán)境下模擬對(duì)所述待調(diào)用API的調(diào)用,并根據(jù)調(diào)用結(jié)果輸出測試結(jié)果,以實(shí)現(xiàn)對(duì)所述待調(diào)用API的測試。8.一種調(diào)用代碼生成方法,其特征在于,包括: 利用反射機(jī)制,訪問加載與應(yīng)用程序接口 API具有映射關(guān)系的方法函數(shù)所屬的類的類加載器; 從所述類加載器中提取所述方法函數(shù)的描述信息; 根據(jù)所述方法函數(shù)的描述信息,對(duì)預(yù)設(shè)的調(diào)用代碼模板進(jìn)行渲染,以生成所述API的前端調(diào)用代碼。9.一種應(yīng)用程序接口 API調(diào)用裝置,其特征在于,包括: 獲取模塊,用于獲取待調(diào)用API的前端調(diào)用代碼,其中,所述前端調(diào)用代碼是預(yù)先根據(jù)與所述待調(diào)用API具有映射關(guān)系的方法函數(shù)的描述信息動(dòng)態(tài)生成的; 運(yùn)行模塊,用于運(yùn)行所述前端調(diào)用代碼,以對(duì)所述待調(diào)用API進(jìn)行調(diào)用。10.根據(jù)權(quán)利要求9所述的裝置,其特征在于,還包括: 訪問模塊,用于利用反射機(jī)制,訪問加載所述方法函數(shù)所屬的類的類加載器; 提取模塊,用于從所述類加載器中提取所述方法函數(shù)的描述信息; 生成模塊,用于根據(jù)所述方法函數(shù)的描述信息,對(duì)預(yù)設(shè)的調(diào)用代碼模板進(jìn)行渲染,以生成所述前端調(diào)用代碼。11.根據(jù)權(quán)利要求10所述的裝置,其特征在于,所述生成模塊還用于: 根據(jù)檢測需求,在所述前端調(diào)用代碼增加符合所述檢測需求的功能代碼,以形成測試版本的前端調(diào)用代碼;和/或 對(duì)所述前端調(diào)用代碼進(jìn)行代碼壓縮,以形成發(fā)布版本的前端調(diào)用代碼。12.根據(jù)權(quán)利要求10所述的裝置,其特征在于,所述提取模塊具體用于: 從所述類加載器中提取所述方法函數(shù)的注解信息; 根據(jù)所述方法函數(shù)的注解信息,獲取所述方法函數(shù)的描述信息。13.根據(jù)權(quán)利要求10所述的裝置,其特征在于,還包括: 文檔處理模塊,用于按照預(yù)設(shè)的數(shù)據(jù)格式,對(duì)所述方法函數(shù)的描述信息進(jìn)行處理,以生成所述待調(diào)用API的說明文檔;輸出所述待調(diào)用API的說明文檔。14.根據(jù)權(quán)利要求13所述的裝置,其特征在于,所述獲取模塊具體用于: 根據(jù)所述待調(diào)用API的說明文檔,從軟件開發(fā)工具包SDK中獲取與所述待調(diào)用API的說明文檔相匹配的前端調(diào)用代碼。15.根據(jù)權(quán)利要求9-14任一項(xiàng)所述的裝置,其特征在于,還包括: 測試模塊,用于在測試用例的控制下,運(yùn)行所述前端調(diào)用代碼以在測試環(huán)境下模擬對(duì)所述待調(diào)用API的調(diào)用,并根據(jù)調(diào)用結(jié)果輸出測試結(jié)果,以實(shí)現(xiàn)對(duì)所述待調(diào)用API的測試。16.一種調(diào)用代碼生成裝置,其特征在于,包括: 訪問模塊,用于利用反射機(jī)制,訪問加載與應(yīng)用程序接口 API具有映射關(guān)系的方法函數(shù)所屬的類的類加載器; 提取模塊,用于從所述類加載器中提取所述方法函數(shù)的描述信息; 生成模塊,用于根據(jù)所述方法函數(shù)的描述信息,對(duì)預(yù)設(shè)的調(diào)用代碼模板進(jìn)行渲染,以生成所述API的前端調(diào)用代碼。
【專利摘要】本發(fā)明提供一種API調(diào)用方法及裝置。API調(diào)用方法包括:獲取待調(diào)用API的前端調(diào)用代碼,其中,前端調(diào)用代碼是預(yù)先根據(jù)與待調(diào)用API具有映射關(guān)系的方法函數(shù)的描述信息動(dòng)態(tài)生成的;運(yùn)行前端調(diào)用代碼,以對(duì)待調(diào)用API進(jìn)行調(diào)用。本發(fā)明可以解決API調(diào)用繁瑣以及API變更時(shí)出現(xiàn)的不一致導(dǎo)致調(diào)用不符合預(yù)期、出錯(cuò)等問題,提高API調(diào)用效率。
【IPC分類】G06F9/44
【公開號(hào)】CN105117233
【申請(qǐng)?zhí)枴緾N201510582285
【發(fā)明人】張振陽
【申請(qǐng)人】百度在線網(wǎng)絡(luò)技術(shù)(北京)有限公司
【公開日】2015年12月2日
【申請(qǐng)日】2015年9月14日