Api調(diào)用方法及裝置的制造方法
【專利說明】
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及軟件技術(shù)領(lǐng)域,尤其涉及一種API調(diào)用方法及裝置。
【【背景技術(shù)】】
[0002]傳統(tǒng)Web開發(fā)模式存在各種問題,出現(xiàn)了前后端分離的需求。在前后端分離開發(fā)模式中,后端主要負(fù)責(zé)業(yè)務(wù)邏輯并向前端提供數(shù)據(jù),前端主要負(fù)責(zé)展現(xiàn)邏輯和頁面渲染。
[0003]后端開發(fā)應(yīng)用程序接口(Applicat1nProgramming Interface,API),并基于Postman等工具整理API的功能、參數(shù)等信息,由熟悉API功能的程序員或相關(guān)技術(shù)人員在API的說明文檔中記錄這些信息;前端根據(jù)Postman工具的試用接口對API進(jìn)行試用,并根據(jù)試用情況及API的說明文檔中記載的API的功能、參數(shù)等信息手動編寫用于調(diào)用該API所需的調(diào)用代碼,通過該調(diào)用代碼調(diào)用API。
[0004]其中,每當(dāng)API更新后,前端都需要重新編寫對應(yīng)該API的調(diào)用代碼,導(dǎo)致API調(diào)用繁瑣。另外,由于API的說明文檔的更新必須人工干預(yù),如果由于人員的疏忽,或其它原因造成在API更新后沒有及時(shí)更新其說明文檔,則可能導(dǎo)致前端沒有及時(shí)更新調(diào)用代碼,從而導(dǎo)致無法成功調(diào)用API,只有在發(fā)現(xiàn)調(diào)用錯誤后,才會更新調(diào)用代碼進(jìn)而成功調(diào)用API,導(dǎo)致API的調(diào)用效率較低。
【
【發(fā)明內(nèi)容】
】
[0005]本發(fā)明的多個方面提供一種API調(diào)用方法及裝置,用以API調(diào)用繁瑣以及API變更時(shí)出現(xiàn)的不一致導(dǎo)致調(diào)用不符合預(yù)期、出錯等問題,提高API調(diào)用效率。
[0006]本發(fā)明的一方面,提供一種API調(diào)用方法,包括:
[0007]獲取待調(diào)用API的前端調(diào)用代碼,其中,所述前端調(diào)用代碼是預(yù)先根據(jù)與所述待調(diào)用API具有映射關(guān)系的方法函數(shù)的描述信息動態(tài)生成的;
[0008]運(yùn)行所述前端調(diào)用代碼,以對所述待調(diào)用API進(jìn)行調(diào)用。
[0009]作為本發(fā)明的進(jìn)一步改進(jìn),所述預(yù)先根據(jù)與所述待調(diào)用API具有映射關(guān)系的方法函數(shù)的描述信息動態(tài)生成所述前端調(diào)用代碼,包括:
[0010]利用反射機(jī)制,訪問加載所述方法函數(shù)所屬的類的類加載器;
[0011]從所述類加載器中提取所述方法函數(shù)的描述信息;
[0012]根據(jù)所述方法函數(shù)的描述信息,對預(yù)設(shè)的調(diào)用代碼模板進(jìn)行渲染,以生成所述前端調(diào)用代碼。
[0013]作為本發(fā)明的進(jìn)一步改進(jìn),所述根據(jù)所述方法函數(shù)的描述信息,對預(yù)設(shè)的調(diào)用代碼模板進(jìn)行渲染,以生成所述前端調(diào)用代碼之后,包括:
[0014]根據(jù)檢測需求,在所述前端調(diào)用代碼增加符合所述檢測需求的功能代碼,以形成測試版本的前端調(diào)用代碼;和/或
[0015]對所述前端調(diào)用代碼進(jìn)行代碼壓縮,以形成發(fā)布版本的前端調(diào)用代碼。
[0016]作為本發(fā)明的進(jìn)一步改進(jìn),所述從所述類加載器中提取所述方法函數(shù)的描述信息,包括:
[0017]從所述類加載器中提取所述方法函數(shù)的注解信息;
[0018]根據(jù)所述方法函數(shù)的注解信息,獲取所述方法函數(shù)的描述信息。
[0019]作為本發(fā)明的進(jìn)一步改進(jìn),所述從所述類加載器中提取所述方法函數(shù)的描述信息之后,包括:
[0020]按照預(yù)設(shè)的數(shù)據(jù)格式,對所述方法函數(shù)的描述信息進(jìn)行處理,以生成所述待調(diào)用API的說明文檔;
[0021]輸出所述待調(diào)用API的說明文檔。
[0022]作為本發(fā)明的進(jìn)一步改進(jìn),所述獲取待調(diào)用API的前端調(diào)用代碼,包括:
[0023]根據(jù)所述待調(diào)用API的說明文檔,從軟件開發(fā)工具包SDK中獲取與所述待調(diào)用API的說明文檔相匹配的前端調(diào)用代碼。
[0024]作為本發(fā)明的進(jìn)一步改進(jìn),所述方法還包括:
[0025]在測試用例的控制下,運(yùn)行所述前端調(diào)用代碼以在測試環(huán)境下模擬對所述待調(diào)用API的調(diào)用,并根據(jù)調(diào)用結(jié)果輸出測試結(jié)果,以實(shí)現(xiàn)對所述待調(diào)用API的測試。
[0026]本發(fā)明的另一方面,提供一種調(diào)用代碼生成方法,包括:
[0027]利用反射機(jī)制,訪問加載與應(yīng)用程序接口 API具有映射關(guān)系的方法函數(shù)所屬的類的類加載器;
[0028]從所述類加載器中提取所述方法函數(shù)的描述信息;
[0029]根據(jù)所述方法函數(shù)的描述信息,對預(yù)設(shè)的調(diào)用代碼模板進(jìn)行渲染,以生成所述API的前端調(diào)用代碼。
[0030]本發(fā)明的又一方面,提供一種API調(diào)用裝置,包括:
[0031]獲取模塊,用于獲取待調(diào)用API的前端調(diào)用代碼,其中,所述前端調(diào)用代碼是預(yù)先根據(jù)與所述待調(diào)用API具有映射關(guān)系的方法函數(shù)的描述信息動態(tài)生成的;
[0032]運(yùn)行模塊,用于運(yùn)行所述前端調(diào)用代碼,以對所述待調(diào)用API進(jìn)行調(diào)用。
[0033]作為本發(fā)明的進(jìn)一步改進(jìn),所述裝置還包括:
[0034]訪問模塊,用于利用反射機(jī)制,訪問加載所述方法函數(shù)所屬的類的類加載器;
[0035]提取模塊,用于從所述類加載器中提取所述方法函數(shù)的描述信息;
[0036]生成模塊,用于根據(jù)所述方法函數(shù)的描述信息,對預(yù)設(shè)的調(diào)用代碼模板進(jìn)行渲染,以生成所述前端調(diào)用代碼。
[0037]作為本發(fā)明的進(jìn)一步改進(jìn),所述生成模塊還用于:
[0038]根據(jù)檢測需求,在所述前端調(diào)用代碼增加符合所述檢測需求的功能代碼,以形成測試版本的前端調(diào)用代碼;和/或
[0039]對所述前端調(diào)用代碼進(jìn)行代碼壓縮,以形成發(fā)布版本的前端調(diào)用代碼。
[0040]作為本發(fā)明的進(jìn)一步改進(jìn),所述提取模塊具體用于:
[0041]從所述類加載器中提取所述方法函數(shù)的注解信息;
[0042]根據(jù)所述方法函數(shù)的注解信息,獲取所述方法函數(shù)的描述信息。
[0043]作為本發(fā)明的進(jìn)一步改進(jìn),所述裝置還包括:
[0044]文檔處理模塊,用于按照預(yù)設(shè)的數(shù)據(jù)格式,對所述方法函數(shù)的描述信息進(jìn)行處理,以生成所述待調(diào)用API的說明文檔;輸出所述待調(diào)用API的說明文檔。
[0045]作為本發(fā)明的進(jìn)一步改進(jìn),所述獲取模塊具體用于:
[0046]根據(jù)所述待調(diào)用API的說明文檔,從軟件開發(fā)工具包SDK中獲取與所述待調(diào)用API的說明文檔相匹配的前端調(diào)用代碼。
[0047]作為本發(fā)明的進(jìn)一步改進(jìn),所述裝置還包括:
[0048]測試模塊,用于在測試用例的控制下,運(yùn)行所述前端調(diào)用代碼以在測試環(huán)境下模擬對所述待調(diào)用API的調(diào)用,并根據(jù)調(diào)用結(jié)果輸出測試結(jié)果,以實(shí)現(xiàn)對所述待調(diào)用API的測試。
[0049]本發(fā)明的又一方面,提供一種調(diào)用代碼生成裝置,包括:
[0050]訪問模塊,用于利用反射機(jī)制,訪問加載與應(yīng)用程序接口 API具有映射關(guān)系的方法函數(shù)所屬的類的類加載器;
[0051]提取模塊,用于從所述類加載器中提取所述方法函數(shù)的描述信息;
[0052]生成模塊,用于根據(jù)所述方法函數(shù)的描述信息,對預(yù)設(shè)的調(diào)用代碼模板進(jìn)行渲染,以生成所述API的前端調(diào)用代碼。
[0053]在本發(fā)明中,基于預(yù)先根據(jù)與待調(diào)用API具有映射關(guān)系的方法函數(shù)的描述信息動態(tài)生成的待調(diào)用API的前端調(diào)用代碼,實(shí)現(xiàn)對待調(diào)用API的調(diào)用。其中,基于與待調(diào)用API具有映射關(guān)系的方法函數(shù)的描述信息,可以實(shí)現(xiàn)待調(diào)用API的前端調(diào)用代碼的自動生成,尤其是在待調(diào)用API更新時(shí),本發(fā)明中的前端調(diào)用代碼可以自動根據(jù)待調(diào)用API對應(yīng)的方法函數(shù)進(jìn)行適應(yīng)性更新,不需要用戶手動編寫API的調(diào)用代碼,并且在該過程中,無需像現(xiàn)有技術(shù)那樣人工維護(hù)API的說明文檔,也就不會出現(xiàn)現(xiàn)有技術(shù)中由于人員的疏忽,或其它原因造成在API更新后沒有及時(shí)更新其說明文檔進(jìn)而導(dǎo)致前端沒有及時(shí)更新調(diào)用代碼的問題,解決了 API調(diào)用繁瑣以及API變更時(shí)出現(xiàn)的不一致導(dǎo)致調(diào)用不符合預(yù)期、出錯等問題,有利于提高API調(diào)用效率。
【【附圖說明】】
[0054]為了更清楚地說明本發(fā)明實(shí)施例中的技術(shù)方案,下面將對實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作一簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0055]圖1為本發(fā)明一實(shí)施例提供的調(diào)用代碼生成方法的流程示意圖;
[0056]圖2為本發(fā)明一實(shí)施例提供的API調(diào)用方法的流程示意圖;
[0057]圖3為本發(fā)明一實(shí)施例提供的API調(diào)用裝置的結(jié)構(gòu)示意圖;
[0058]圖4為本發(fā)明另一實(shí)施例提供的API調(diào)用裝置的結(jié)構(gòu)示意圖;
[0059]圖5為本發(fā)明一實(shí)施例提供的調(diào)用代碼生成裝置的結(jié)構(gòu)示意圖;
[0060]圖6為本發(fā)明另一實(shí)施例提供的調(diào)用代碼生成裝置的結(jié)構(gòu)示意圖;
[0061]圖7為本發(fā)明一實(shí)施例提供的調(diào)用代碼生成裝置部署實(shí)施時(shí)的架構(gòu)示意圖。
【【具體實(shí)施方式】】
[0062]為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0063]在計(jì)算機(jī)領(lǐng)域,方法函數(shù)是由程序人員編寫的代碼;一般而言,對于面向?qū)ο蟮木幊谭绞剑鄠€方法函數(shù)可以屬于一個類;編寫完成的方法函數(shù)被映射為一個唯一的API接口供第三方調(diào)用。第三方通過調(diào)用該API接口,可以實(shí)現(xiàn)與該API接口具有映射關(guān)系