亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

基于Internet的OpenAPI自動獲取方法

文檔序號:6356558閱讀:187來源:國知局
專利名稱:基于Internet的OpenAPI自動獲取方法
技術(shù)領(lǐng)域
本發(fā)明涉及數(shù)據(jù)加載領(lǐng)域,本發(fā)明將hternet中大量的OpenAPI (Application Programming hterface,應(yīng)用編程接口 )數(shù)據(jù)自動或半自動(手動配置)地加載到數(shù)據(jù)庫中,特別涉及一種基于hternet的OpenAPI自動獲取方法。
背景技術(shù)
在互聯(lián)網(wǎng)時代,將網(wǎng)站的服務(wù)封裝成一系列計算機(jī)易識別的數(shù)據(jù)接口開放出去供第三方開發(fā)者使用的行為就叫做開放網(wǎng)站的API,與之對應(yīng)的所開放的API就稱作 OpenAPI0目前互聯(lián)網(wǎng)上流行的OpenAPI不論是種類、服務(wù)質(zhì)量、還是規(guī)范化和使用情況都有了很大的提升,可以說已經(jīng)由初期的發(fā)展轉(zhuǎn)到了較為成熟的發(fā)展。其中Google已經(jīng)開放了包括 GoogleMaps、karch、Video 和 Advertising 等 50 多個 OpenAPI,尤其是 GoogleMaps 衍生出眾多的Web應(yīng)用,也推動了更多OpenAPI的開放。Yahoo、Microsoft、Amazon、eBay、 Facebook、Twitter和Flickr等也紛紛開放平臺或提供相應(yīng)的OpenAPI。與此同時,國內(nèi)各大網(wǎng)站紛紛宣布推出開放平臺,其中有新浪和搜狐等門戶網(wǎng)站,也有最近涌現(xiàn)的人人網(wǎng)和 Myspace等社交類網(wǎng)站。OpenAPI數(shù)量的快速增加以及功能的日益豐富,為用戶提供了更加方便、快捷開放能力,也使得越來越多的開發(fā)者能夠接觸到Web應(yīng)用開發(fā)的前沿,可以很容易地在自己的網(wǎng)站中構(gòu)建各種功能豐富、交互性強(qiáng)的應(yīng)用程序。發(fā)明人在實現(xiàn)本發(fā)明的過程中,發(fā)現(xiàn)現(xiàn)有技術(shù)至少存在以下缺點由于OpenAPI沒有一個統(tǒng)一的接口規(guī)范,使得開發(fā)者在使用不同網(wǎng)站的同種類型的OpenAPI時,如Google地圖API和百度地圖API,需要閱讀不同的API類參考文檔,這就給開發(fā)者的開發(fā)帶來了諸多不便。

發(fā)明內(nèi)容
為了方便開發(fā)者的開發(fā)和應(yīng)用,滿足實際應(yīng)用中的需要,本發(fā)明提供了一種基于 Internet的OpenAPI自動獲取方法,詳見下文描述一種基于hternet的OpenAPI自動獲取方法,所述方法包括以下步驟(1)判斷OpenAPI協(xié)議的類型是否是Ajax協(xié)議或Rest協(xié)議,如果是,則執(zhí)行步驟 (2);如果否,則為Soap協(xié)議,執(zhí)行步驟(3);(2)通過OpenAPI Home的URL獲取存放OpenAPI詳細(xì)信息的頁面,判斷是否獲取到所述存放OpenAPI詳細(xì)信息的頁面,如果是,執(zhí)行步驟(4);如果否,流程結(jié)束;(3)通過OpenAPI Home的URL獲取存放OpenAPI詳細(xì)信息的WSDL文檔,判斷是否獲取到所述存放OpenAPI詳細(xì)信息的WSDL文檔,如果是,執(zhí)行步驟(5);如果否,流程結(jié)束;(4)根據(jù)所述存放OpenAPI詳細(xì)信息的頁面,獲取網(wǎng)頁源碼,并分析網(wǎng)頁結(jié)構(gòu),執(zhí)行步驟(6);(5)根據(jù)所述存放OpenAPI詳細(xì)信息的WSDL文檔,解析WSDL文檔,執(zhí)行步驟(7);
(6)根據(jù)所述網(wǎng)頁結(jié)構(gòu)編寫和所述網(wǎng)頁結(jié)構(gòu)相應(yīng)的正則表達(dá)式,執(zhí)行步驟(8);(7)判斷解析是否成功,如果是,執(zhí)行步驟(9);如果否,流程結(jié)束;(8)判斷OpenAPI協(xié)議類型是否是所述Ajax協(xié)議,如果是,執(zhí)行步驟(10);如果否,則為所述Rest協(xié)議,執(zhí)行步驟(11);(9)獲取所述Soap協(xié)議的詳細(xì)信息,執(zhí)行步驟(12);(10)通過正則表達(dá)式匹配頁面源代碼,獲取Ajax協(xié)議的詳細(xì)信息,執(zhí)行步驟 (12);(11)通過正則表達(dá)式匹配頁面源代碼,獲取Rest協(xié)議的詳細(xì)信息,執(zhí)行步驟 (12);(1 根據(jù)所述Ajax協(xié)議、所述Rest協(xié)議和所述Soap協(xié)議將所述Soap協(xié)議的詳細(xì)信息、所述Ajax協(xié)議的詳細(xì)信息和所述Rest協(xié)議的詳細(xì)信息加載到數(shù)據(jù)庫相應(yīng)的表中;(13)判斷是否加載成功,如果是,執(zhí)行步驟(14);如果否,流程結(jié)束。(14)返回成功信息,流程結(jié)束。所述方法還包括將包含Ajax協(xié)議或Rest協(xié)議的所述OpenAPI詳細(xì)信息的頁面讀取至本地文件。所述方法還包括將包含Soap協(xié)議的所述OpenAPI詳細(xì)信息的WSDL文檔下載到本地。在步驟(10)和步驟(11)之后,步驟(1 之前,所述方法還包括對獲取到的所述Ajax協(xié)議的詳細(xì)信息進(jìn)行人工校驗;對獲取到的所述Rest協(xié)議的詳細(xì)信息進(jìn)行人工校驗。在執(zhí)行步驟( 之前,所述方法還包括判斷是否已有所述存放OpenAPI詳細(xì)信息的頁面,如果是,執(zhí)行步驟(4);如果否, 則執(zhí)行步驟(2)。在執(zhí)行步驟( 之前,所述方法還包括判斷是否已有所述存放OpenAPI詳細(xì)信息的WSDL文檔,如果是,執(zhí)行步驟(5);如果否,則執(zhí)行步驟(3)。在執(zhí)行步驟( 或步驟(3)時,所述方法還包括在獲取所述存放OpenAPI詳細(xì)信息的頁面或所述存放OpenAPI詳細(xì)信息的WSDL 文檔時,采用UTF-8格式。本發(fā)明提供的技術(shù)方案的有益效果是本發(fā)明提供了一種基于hternet的OpenAPI自動獲取方法,本發(fā)明能夠以自動或半自動(手動配置)的方式主動地抓取OpenAPI數(shù)據(jù),通過必要的分解和重組,封裝為完整的OpenAPI并添加入庫,從而不斷擴(kuò)大開放能力管理平臺的OpenAPI數(shù)據(jù)量,為面向 OpenAPI的開放能力管理平臺打好基礎(chǔ);使用本方法可以將hternet中大量的OpenAPI自動加載到數(shù)據(jù)庫中,而且即使某個OpenAPI的信息發(fā)生變化,也不需要重新開發(fā),只需要修改配置文件中的正則表達(dá)式就可以解決,為OpenAPI數(shù)據(jù)的獲取提供了便利。


圖1為本發(fā)明提供的架構(gòu)示意5
圖2為本發(fā)明提供的基于hternet的OpenAPI自動獲取方法的示意圖;圖3為本發(fā)明提供的基于hternet的OpenAPI自動獲取方法的流程圖;圖4為本發(fā)明提供的存儲OpenAPI基本信息的表字段的結(jié)構(gòu)示意圖;圖5為本發(fā)明提供的Ajax協(xié)議的表結(jié)構(gòu)的示意圖;圖6為本發(fā)明提供的Rest協(xié)議的表結(jié)構(gòu)的示意圖;圖7為本發(fā)明提供的Soap協(xié)議的表結(jié)構(gòu)的示意圖。
具體實施例方式為使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合附圖對本發(fā)明實施方式作進(jìn)一步地詳細(xì)描述。為了方便開發(fā)者的開發(fā)和應(yīng)用,滿足實際應(yīng)用中的需要,本發(fā)明實施例提供了一種基于hternet的OpenAPI自動獲取方法,參見圖1、圖2和圖3,詳見下文描述在本發(fā)明實施例中,OpenAPI的協(xié)議類型分為三種,分別為Ajax協(xié)議、Rest協(xié)議和Soap協(xié)議。對于每一個OpenAPI,都由基本信息和詳細(xì)信息兩個部分組成?;拘畔⒅饕糜谟脩舻臋z索以及查看,包括API名稱、標(biāo)簽、協(xié)議類型和提供者等信息;詳細(xì)信息主要用于調(diào)用,包括調(diào)用時需要的類、方法、輸入,以及返回結(jié)果等信息,對于不同協(xié)議類型的 OpenAPI,調(diào)用時需要的信息類型也各不相同,本發(fā)明實施例提供的架構(gòu)如圖1所示。從圖1 中可以看出,本發(fā)明實施例主要分為三個部分,分別為數(shù)據(jù)獲取、解析數(shù)據(jù)和持久化。下面分別對各個部分進(jìn)行概要的介紹。1、數(shù)據(jù)獲取基于hternet不斷查找新的OpenAPI ;盡管hternet中有著大量的OpenAPI,但如果盲目地在hternet中進(jìn)行 OpenAPI的搜索,則會花費大量的精力及時間,因此本發(fā)明實施例從注冊有大量OpenAPI的 Programmable Web出發(fā),在其中查找當(dāng)前最流行、使用最多的OpenAPI,需要的操作可分為以下兩個步驟①在Programmable Web中,為獲取OpenAPI的基本信息,需要解析Programmable Web中的網(wǎng)頁,以獲取OpenAPI的名稱、標(biāo)簽、協(xié)議和API HomeURI等基本信息;②由于!Programmable Web中只包含OpenAPI的基本信息,不包含詳細(xì)信息,因此需要轉(zhuǎn)到API Home URI中找到包含有相應(yīng)OpenAPI詳細(xì)信息的頁面,在該包含有相應(yīng) OpenAPI詳細(xì)信息的頁面獲取到詳細(xì)信息。2、解析數(shù)據(jù)獲取OpenAPI的詳細(xì)信息;由于本發(fā)明實施例涉及了三種協(xié)議類型的OpenAPI,而不同協(xié)議的OpenAPI的詳細(xì)信息類型也各不相同,因此需要針對不同協(xié)議的OpenAPI制定不同的解析方案,分別為· Ajax協(xié)議該協(xié)議的OpenAPI的詳細(xì)信息是以頁面的形式進(jìn)行展現(xiàn)的,因此需要對包含有Ajax協(xié)議的OpenAPI的詳細(xì)信息的頁面進(jìn)行解析,從中獲取該OpenAPI提供的類、類所具有的屬性和方法、方法需要的輸入以及返回的結(jié)果;· Rest協(xié)議該協(xié)議的OpenAPI的詳細(xì)信息也是以頁面的格式進(jìn)行存放的,因此要做的也是解析頁面,與解析Ajax協(xié)議的OpenAPI的詳細(xì)信息不同的是,對于Rest協(xié)議的 OpenAPI,需要獲取的詳細(xì)信息為該OpenAPI包含的方法、方法中需要的輸入以及返回的結(jié)果列表;
· Soap協(xié)議不同于以上兩種協(xié)議的OpenAPI,該協(xié)議的OpenAPI的詳細(xì)信息以 WSDL文檔的方式進(jìn)行存儲,因此要進(jìn)行的操作就是解析包含有Soap協(xié)議的OpenAPI的詳細(xì)信息的WSDL文檔,獲取該OpenAPI提供的服務(wù)、調(diào)用服務(wù)時執(zhí)行的操作、操作需要的輸入和返回的結(jié)果。在解析Ajax協(xié)議的OpenAPI時,著重獲取的是該OpenAPI所包含的類、類的屬性以及方法、方法需要的輸入和返回的結(jié)果,因此就需要對頁面格式即頁面源代碼進(jìn)行細(xì)致的分析,分析哪塊代碼包含該OpenAPI的類的信息,找出這些代碼的共性,然后編寫出相應(yīng)的正則表達(dá)式,通過正則表達(dá)式去匹配頁面源代碼,獲取類的信息,之后獲取每個類的屬性和方法、每個方法的輸入和返回的結(jié)果。以Google Maps API的類及其描述信息的獲取為例,包含Google MapsAPI詳細(xì)信息的頁面的網(wǎng)址為http//code.google, com/intl/en/apis/maps/documentation/reference, html,在對包含Google Maps的類及其描述的代碼進(jìn)行分析后,編寫出用于匹配源代碼的正則表達(dá)式為<h2 id=" (["〃 ] *)" >Class (["<] * ) </h2Xp> ((. ) * )</p>,然后通過Pattern類的compile方法將上述正則表達(dá)式編譯并賦值給Pattern類的一個對象,之后這個對象使用matcher方法生成一個Matcher實例,接著就可以使用該 Matcher實例以編譯的正則表達(dá)式為基礎(chǔ)對頁面源代碼進(jìn)行匹配工作,通過調(diào)用find方法在頁面源代碼中查找下一個匹配子串,在查找到的每個子串中使用group方法獲取與指定的組相匹配的內(nèi)容,即是Google Maps所包含的類的名稱及其描述。Rest協(xié)議的OpenAPI的解析過程類似于Ajax協(xié)議,只是獲取的信息類型不同,本發(fā)明實施例對此不再贅述。由于Soap協(xié)議的OpenAPI的詳細(xì)信息是以WSDL文檔的形式進(jìn)行存放的,因此解析Soap協(xié)議的OpenAPI的詳細(xì)信息的過程就是解析WSDL文檔。在解析WSDL文檔時有很多選擇方案,如SAX、D0M等,在本發(fā)明實施例中,采用wsdl4j來解析WSDL文檔,依次得到該 OpenAPI提供的服務(wù)、服務(wù)調(diào)用的操作、操作需要的輸入和返回的結(jié)果。3、持久化進(jìn)行OpenAPI的存儲。前面提到過,對于不同協(xié)議的OpenAPI,其基本信息的數(shù)據(jù)格式是一樣的,而詳細(xì)信息的數(shù)據(jù)格式不一樣,因此對于基本信息的存放采用一個數(shù)據(jù)表即可,而對于詳細(xì)信息的存儲則需要不同的數(shù)據(jù)表,涉及的操作分別為①設(shè)計一個數(shù)據(jù)表用于存放OpenAPI的基本信息;②對于不同協(xié)議的OpenAPI,設(shè)計不同的數(shù)據(jù)表,以Rest協(xié)議的OpenAPI為例,每個Rest協(xié)議的OpenAPI都包含有至少一個方法,而每個方法也可能包含多個輸入,因此,為了優(yōu)化數(shù)據(jù)庫,需要采用多張表格用于每種協(xié)議的OpenAPI的詳細(xì)信息的存儲;③定義對OpenAPI數(shù)據(jù)庫操作的接口,通過接口實現(xiàn)基本的數(shù)據(jù)庫操作。101 判斷OpenAPI協(xié)議的類型是否是Ajax協(xié)議或Rest協(xié)議,如果是,則執(zhí)行步驟 102 ;如果否,則為Soap協(xié)議,執(zhí)行步驟103 ;102 通過OpenAPI Home的URL獲取存放OpenAPI詳細(xì)信息的頁面,判斷是否獲取到存放OpenAPI詳細(xì)信息的頁面,如果是,執(zhí)行步驟104 ;如果否,流程結(jié)束;其中,為了提高工作效率,在執(zhí)行步驟102之前,本發(fā)明實施例還包括
7
判斷是否已有存放OpenAPI詳細(xì)信息的頁面,如果是,執(zhí)行步驟104 ;如果否,則執(zhí)行步驟102。103 通過OpenAPI Home的URL獲取存放OpenAPI詳細(xì)信息的WSDL文檔,判斷是否獲取到存放OpenAPI詳細(xì)信息的WSDL文檔,如果是,執(zhí)行步驟105 ;如果否,流程結(jié)束;其中,對于不同協(xié)議的OpenAPI,需要不同的解析方案,在解析OpenAPI的詳細(xì)信息時,為將網(wǎng)絡(luò)速度對本發(fā)明實施例的影響減至最小,本發(fā)明實施例會將包含Ajax協(xié)議或 Rest協(xié)議的OpenAPI的詳細(xì)信息的頁面讀取至本地文件;對于Soap協(xié)議的OpenAPI,本發(fā)明實施例會將包含Soap協(xié)議的OpenAPI詳細(xì)信息的WSDL文檔下載到本地。其中,為了提高工作效率,在執(zhí)行步驟103之前,本發(fā)明實施例還包括判斷是否已有存放OpenAPI詳細(xì)信息的WSDL文檔,如果是,執(zhí)行步驟105 ;如果否,則執(zhí)行步驟103。104 根據(jù)存放OpenAPI詳細(xì)信息的頁面,獲取網(wǎng)頁源碼,并分析網(wǎng)頁結(jié)構(gòu),執(zhí)行步驟 106 ;105 根據(jù)存放OpenAPI詳細(xì)信息的WSDL文檔,解析WSDL文檔,執(zhí)行步驟107 ;106 根據(jù)網(wǎng)頁結(jié)構(gòu)編寫和網(wǎng)頁結(jié)構(gòu)相應(yīng)的正則表達(dá)式,執(zhí)行步驟108 ;其中,正則表達(dá)式常被用于檢索和/或替換符合某個模式的文本內(nèi)容,所以本發(fā)明實施例采用正則表達(dá)式匹配頁面源代碼的方法獲取信息。由于,解析的頁面都是 Programmable Web中的,因此包含OpenAPI基本信息的頁面都是具有統(tǒng)一格式的,編寫的正則表達(dá)式也能適用于絕大多數(shù)頁面,因此,具有高效性。107 判斷解析是否成功,如果是,執(zhí)行步驟109 ;如果否,流程結(jié)束;108 判斷OpenAPI協(xié)議類型是否是Ajax協(xié)議,如果是,執(zhí)行步驟110 ;如果否,則為Rest協(xié)議,執(zhí)行步驟111 ;109 獲取Soap協(xié)議的詳細(xì)信息,執(zhí)行步驟112 ;其中,該Soap協(xié)議的詳細(xì)信息包括服務(wù)、服務(wù)包含的方法、方法的輸入和輸出。110 通過正則表達(dá)式匹配頁面源代碼,獲取Ajax協(xié)議的詳細(xì)信息,執(zhí)行步驟 112 ;其中,該Ajax協(xié)議的詳細(xì)信息包括類、類的屬性、類的方法和方法的參數(shù)。111 通過正則表達(dá)式匹配頁面源代碼,獲取Rest協(xié)議的詳細(xì)信息,執(zhí)行步驟 112 ;其中,該Rest協(xié)議的詳細(xì)信息包括方法、方法的參數(shù)和返回元素列表。112 根據(jù)Ajax協(xié)議、Rest協(xié)議和Soap協(xié)議將Soap協(xié)議的詳細(xì)信息、Ajax協(xié)議的詳細(xì)信息和Rest協(xié)議的詳細(xì)信息加載到數(shù)據(jù)庫相應(yīng)的表中;其中,用于存儲OpenAPI基本信息的表字段的示意圖如圖4所示。表api包括 OpenAPI 的 Name、Tags、Protocol 和 API Home 等基本信息字段。根據(jù)三種不同協(xié)議的OpenAPI的結(jié)構(gòu)特點,分別制定和數(shù)據(jù)庫相應(yīng)的表進(jìn)行存儲。對于Ajax協(xié)議的OpenAPI,由于基于Ajax的OpenAPI本身就是JS庫,所以包含若干 JS類,每個類里面包含有類的數(shù)據(jù)成員和方法,方法又具備調(diào)用參數(shù)列表。由于Ajax協(xié)議的特殊性,可獨立運(yùn)行的JS代碼片段稱為應(yīng)用(Application),并將其源碼以及基本的描述信息存儲在數(shù)據(jù)庫中,用戶可以直接對其功能進(jìn)行調(diào)用。Ajax協(xié)議和數(shù)據(jù)庫相應(yīng)的表結(jié)
8構(gòu)的示意圖如圖5所示,包括6個表,分別為ajax_application 用于存儲Ajax協(xié)議的OpenAPI的可獨立運(yùn)行的JS代碼片段, 也即應(yīng)用,包括應(yīng)用的名稱、描述和代碼片段;application_input 作為ajax_application的輸入,包括輸入的名稱、描述、類型、是否必需、樣本值和默認(rèn)值;ajax_class 用于存儲Ajax協(xié)議的OpenAPI提供的類,包括類的名稱和描述;ajax_property 作為ajax^lass的屬性,包括屬性的名稱、描述和類型;ajax_method 作為ajax^lass的方法,包括方法的名稱、描述和使用例子,由于調(diào)用方法后最多返回一個結(jié)果,因此將返回的結(jié)果的名稱和類型也作為方法的屬性;ajax_input 作為ajaxjiiethod的輸入,包括輸入的名稱、描述、類型、是否必需、 樣本值和默認(rèn)值。對于Rest協(xié)議,存儲結(jié)構(gòu)分為兩級,即Rest協(xié)議的OpenAPI提供若干可調(diào)用的方法;每個方法有帶有自己的調(diào)用參數(shù)列表,以及返回元素列表。Rest協(xié)議的表結(jié)構(gòu)的示意圖如圖6所示,包括3個表,分別為rest_method 用于存放Rest協(xié)議的OpenAPI包含的方法,包括方法的名稱、描述、 可用性、調(diào)用串、調(diào)用樣例和返回的結(jié)果樣例;rest_input 作為rest_method的輸入,包括輸入的名稱、描述、類型、是否必需、 樣本值、默認(rèn)值和約束條件;rest_response 作為rest_method的返回結(jié)果,包括返回結(jié)果的名稱、描述和類型。對于Soap協(xié)議的OpenAPI來說,每個OpenAPI都對應(yīng)一個Web服務(wù)。服務(wù)首先要具備基本的服務(wù)描述信息,以及該服務(wù)可調(diào)用的服務(wù)操作,每個服務(wù)操作又包括輸入輸出參數(shù)列表。Soap協(xié)議的表結(jié)構(gòu)的示意圖如圖7所示,包括4個表,分別為soap_service 用于存儲Soap協(xié)議的OpenAPI所提供的服務(wù),包括服務(wù)的名稱、命名空間、WSDL文檔的URI和WSDL文檔;soap_method 作為soap_service的操作,包括操作的名稱和描述;soap_input 作為soap_method的輸入,包括輸入的名稱、類型、樣本值和默認(rèn)值;soap_output 作為soap_method的輸出,包括輸出的名稱、類型、樣本值和默認(rèn)值。其中,在步驟110和步驟111之后,步驟112之前,為確保獲取到的信息的準(zhǔn)確性, 本發(fā)明實施例還包括對獲取到的Ajax協(xié)議的詳細(xì)信息進(jìn)行人工校驗;對獲取到的Rest協(xié)議的詳細(xì)信息進(jìn)行人工校驗。值得一提的是,當(dāng)獲取到的數(shù)據(jù)信息量較大時,就不再對每條信息都進(jìn)行一一地校驗,而是隨機(jī)地對信息進(jìn)行校驗。113 判斷是否加載成功,如果是,執(zhí)行步驟114 ;如果否,流程結(jié)束。114 返回成功信息,流程結(jié)束。其中,在執(zhí)行步驟102或103時,避免出現(xiàn)中文亂碼問題,本發(fā)明實施例在獲取存放OpenAPI詳細(xì)信息的頁面或存放OpenAPI詳細(xì)信息的WSDL文檔時,采用UTF-8格式,很好地解決了中文亂碼問題。綜上所述,本發(fā)明實施例提供了一種基于hternet的OpenAPI自動獲取方法,本發(fā)明能夠以自動或半自動(手動配置)的方式主動地抓取OpenAPI數(shù)據(jù),通過必要的分解和重組,封裝為完整的OpenAPI并添加入庫,從而不斷擴(kuò)大開放能力管理平臺的OpenAPI數(shù)據(jù)量,為面向OpenAPI的開放能力管理平臺打好基礎(chǔ);使用本發(fā)明實施例提供的方法可以將hternet中大量的OpenAPI自動加載到數(shù)據(jù)庫中,而且即使某個OpenAPI的信息發(fā)生變化,也不需要重新開發(fā),只需要修改配置文件中的正則表達(dá)式就可以解決,為OpenAPI數(shù)據(jù)的獲取提供了便利。本領(lǐng)域技術(shù)人員可以理解附圖只是一個優(yōu)選實施例的示意圖,上述本發(fā)明實施例序號僅僅為了描述,不代表實施例的優(yōu)劣。以上所述僅為本發(fā)明的較佳實施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種基于hternet的OpenAPI自動獲取方法,其特征在于,所述方法包括以下步驟(1)判斷OpenAPI協(xié)議的類型是否是Ajax協(xié)議或Rest協(xié)議,如果是,則執(zhí)行步驟O); 如果否,則為Soap協(xié)議,執(zhí)行步驟(3);(2)通過OpenAPIHome的URL獲取存放OpenAPI詳細(xì)信息的頁面,判斷是否獲取到所述存放OpenAPI詳細(xì)信息的頁面,如果是,執(zhí)行步驟(4);如果否,流程結(jié)束;(3)通過OpenAPIHome的URL獲取存放OpenAPI詳細(xì)信息的WSDL文檔,判斷是否獲取到所述存放OpenAPI詳細(xì)信息的WSDL文檔,如果是,執(zhí)行步驟(5);如果否,流程結(jié)束;(4)根據(jù)所述存放OpenAPI詳細(xì)信息的頁面,獲取網(wǎng)頁源碼,并分析網(wǎng)頁結(jié)構(gòu),執(zhí)行步驟(6);(5)根據(jù)所述存放OpenAPI詳細(xì)信息的WSDL文檔,解析WSDL文檔,執(zhí)行步驟(7);(6)根據(jù)所述網(wǎng)頁結(jié)構(gòu)編寫和所述網(wǎng)頁結(jié)構(gòu)相應(yīng)的正則表達(dá)式,執(zhí)行步驟(8);(7)判斷解析是否成功,如果是,執(zhí)行步驟(9);如果否,流程結(jié)束;(8)判斷OpenAPI協(xié)議類型是否是所述Ajax協(xié)議,如果是,執(zhí)行步驟(10);如果否,則為所述Rest協(xié)議,執(zhí)行步驟(11);(9)獲取所述Soap協(xié)議的詳細(xì)信息,執(zhí)行步驟(12);(10)通過正則表達(dá)式匹配頁面源代碼,獲取Ajax協(xié)議的詳細(xì)信息,執(zhí)行步驟(12);(11)通過正則表達(dá)式匹配頁面源代碼,獲取Rest協(xié)議的詳細(xì)信息,執(zhí)行步驟(12);(12)根據(jù)所述Ajax協(xié)議、所述Rest協(xié)議和所述Soap協(xié)議將所述Soap協(xié)議的詳細(xì)信息、所述Ajax協(xié)議的詳細(xì)信息和所述Rest協(xié)議的詳細(xì)信息加載到數(shù)據(jù)庫相應(yīng)的表中;(13)判斷是否加載成功,如果是,執(zhí)行步驟(14);如果否,流程結(jié)束;(14)返回成功信息,流程結(jié)束。
2.根據(jù)權(quán)利要求1所述的基于hternet的OpenAPI自動獲取方法,其特征在于,所述方法還包括將包含Ajax協(xié)議或Rest協(xié)議的所述OpenAPI詳細(xì)信息的頁面讀取至本地文件。
3.根據(jù)權(quán)利要求1所述的基于hternet的OpenAPI自動獲取方法,其特征在于,所述方法還包括將包含Soap協(xié)議的所述OpenAPI詳細(xì)信息的WSDL文檔下載到本地。
4.根據(jù)權(quán)利要求1所述的基于hternet的OpenAPI自動獲取方法,其特征在于,在步驟(10)和步驟(11)之后,步驟(1 之前,所述方法還包括對獲取到的所述Ajax協(xié)議的詳細(xì)信息進(jìn)行人工校驗;對獲取到的所述Rest協(xié)議的詳細(xì)信息進(jìn)行人工校驗。
5.根據(jù)權(quán)利要求1所述的基于^iternet的OpenAPI自動獲取方法,其特征在于,在執(zhí)行步驟( 之前,所述方法還包括判斷是否已有所述存放OpenAPI詳細(xì)信息的頁面,如果是,執(zhí)行步驟(4);如果否,則執(zhí)行步驟O)。
6.根據(jù)權(quán)利要求1所述的基于^iternet的OpenAPI自動獲取方法,其特征在于,在執(zhí)行步驟C3)之前,所述方法還包括判斷是否已有所述存放OpenAPI詳細(xì)信息的WSDL文檔,如果是,執(zhí)行步驟(5);如果否,則執(zhí)行步驟(3)。
7.根據(jù)權(quán)利要求1所述的基于hternet的OpenAPI自動獲取方法,其特征在于,在執(zhí)行步驟( 或步驟(3)時,所述方法還包括在獲取所述存放OpenAPI詳細(xì)信息的頁面或所述存放OpenAPI詳細(xì)信息的WSDL文檔時,采用UTF-8格式。
全文摘要
本發(fā)明公開了一種基于Internet的OpenAPI自動獲取方法,涉及數(shù)據(jù)加載領(lǐng)域,本發(fā)明能夠以自動或半自動(手動配置)的方式主動地抓取OpenAPI數(shù)據(jù),通過必要的分解和重組,封裝為完整的OpenAPI并添加入庫,從而不斷擴(kuò)大開放能力管理平臺的OpenAPI數(shù)據(jù)量,為面向OpenAPI的開放能力管理平臺打好基礎(chǔ);使用本發(fā)明提供的方法可以將Internet中大量的OpenAPI自動加載到數(shù)據(jù)庫中,而且即使某個OpenAPI的信息發(fā)生變化,也不需要重新開發(fā),只需要修改配置文件中的正則表達(dá)式就可以解決,為OpenAPI數(shù)據(jù)的獲取提供了便利。
文檔編號G06F9/44GK102193798SQ20111006947
公開日2011年9月21日 申請日期2011年3月22日 優(yōu)先權(quán)日2011年3月22日
發(fā)明者馮志勇, 李亞洲, 胡小草, 陳世展 申請人:天津大學(xué)
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1