本發(fā)明涉及互聯(lián)網(wǎng)通信領(lǐng)域,尤其涉及一種多數(shù)據(jù)源交互接口的調(diào)用處理方法。
背景技術(shù):
在大數(shù)據(jù)行業(yè),一般數(shù)據(jù)來(lái)源除了自身歷史累計(jì)下來(lái)的用戶數(shù)據(jù)之外,還有相當(dāng)一部分?jǐn)?shù)據(jù)是需要從其他數(shù)據(jù)提供商獲取的。比如從銀聯(lián)、中國(guó)金融認(rèn)證中心獲取用戶的卡類(lèi)交易信息,從face++獲取人臉識(shí)別相關(guān)信息,從上海三零獲取社保繳納相關(guān)信息,從中國(guó)移動(dòng)獲取手機(jī)卡使用相關(guān)信息等等。外部數(shù)據(jù)源的使用,一般都是通過(guò)調(diào)用數(shù)據(jù)供應(yīng)商的接口來(lái)獲得,每一個(gè)供應(yīng)商提供的接口類(lèi)型不一樣、數(shù)量也不一樣。
對(duì)于基礎(chǔ)性接口,一般都是經(jīng)過(guò)開(kāi)發(fā)人員封裝后,提供出來(lái)給客戶使用,但是對(duì)于客戶來(lái)說(shuō),其有可能在調(diào)用接口時(shí),可能就會(huì)使用多個(gè)基礎(chǔ)性接口,而且不同的功能需要的類(lèi)型或者數(shù)量都不一樣,比如,用于“查身份”功能,就需要同時(shí)調(diào)用中國(guó)金融認(rèn)證中心提供的3個(gè)接口和銀聯(lián)智策的一個(gè)接口;用于“查信用”功能,則就需要同時(shí)調(diào)用中國(guó)金額認(rèn)證中心提供的一個(gè)接口、銀聯(lián)智策的一個(gè)接口以及公司自有的數(shù)據(jù)接口。因此,在封裝好很多基礎(chǔ)接口的前提下,對(duì)于每一個(gè)用戶的新需求,都需要額外編寫(xiě)代碼來(lái)將所需接口整合起來(lái),但是當(dāng)接口數(shù)量達(dá)到一定程度后,開(kāi)發(fā)和維護(hù)的成本開(kāi)銷(xiāo)會(huì)很大,同時(shí)還會(huì)存在重復(fù)開(kāi)發(fā)的弊端,造成資源的浪費(fèi)。另外,在調(diào)用接口時(shí),其訪問(wèn)速度也比較低下。
技術(shù)實(shí)現(xiàn)要素:
為了克服現(xiàn)有技術(shù)的不足,本發(fā)明的目的之一在于提供多數(shù)據(jù)源交互接口的調(diào)用方法,其能夠解決現(xiàn)有技術(shù)中從多數(shù)據(jù)源通過(guò)接口獲取數(shù)據(jù)時(shí)工作人員的開(kāi)發(fā)和維護(hù)成本大的技術(shù)問(wèn)題。
本發(fā)明的目的之一采用以下技術(shù)方案實(shí)現(xiàn):
本發(fā)明提供了多數(shù)據(jù)源交互接口的調(diào)用方法,包括:
S1:獲取客戶端發(fā)送的組合接口調(diào)用請(qǐng)求;所述組合接口調(diào)用請(qǐng)求包括組合接口id和輸入?yún)?shù);
S2:在組合接口配置表中查找所述組合接口id所對(duì)應(yīng)的組合接口,所述組合接口的配置信息包括組合接口配置輸入?yún)?shù)和對(duì)應(yīng)的基礎(chǔ)接口id;
S3:將所述輸入?yún)?shù)與所述組合接口配置輸入?yún)?shù)作對(duì)比,查看所述輸入?yún)?shù)是否完整,若否,則返回客戶端或結(jié)束流程,若是,則執(zhí)行S4;
S4:通過(guò)基礎(chǔ)接口配置表查找每個(gè)基礎(chǔ)接口id所對(duì)應(yīng)的基礎(chǔ)接口并調(diào)用處理,得出該組合接口的輸出結(jié)果并返回給客戶端。
優(yōu)選地,S4具體包括:
當(dāng)組合接口為同步接口,也即是每個(gè)基礎(chǔ)接口均為同步的基礎(chǔ)接口時(shí),調(diào)用每個(gè)基礎(chǔ)接口并處理得出對(duì)應(yīng)的基礎(chǔ)接口的輸出參數(shù),然后按照組合接口的輸出結(jié)果與對(duì)應(yīng)的基礎(chǔ)接口的輸出參數(shù)之間的映射關(guān)系,將所有的輸出參數(shù)轉(zhuǎn)換為組合接口的輸出結(jié)果,并返回給客戶端;所述組合接口的輸出結(jié)果與對(duì)應(yīng)的基礎(chǔ)接口的輸出參數(shù)之間的映射關(guān)系被存儲(chǔ)于一組合_基礎(chǔ)輸出映射表中;
當(dāng)組合接口為異步接口,也即是存在有一個(gè)或一個(gè)以上的基礎(chǔ)接口為異步的基礎(chǔ)接口時(shí),調(diào)用每個(gè)基礎(chǔ)接口并處理,然后生成該組合接口對(duì)應(yīng)的一流水號(hào),將所述流水號(hào)返回給客戶端。
優(yōu)選地,所述組合接口為異步接口時(shí),還包括:
當(dāng)存在有一個(gè)或以上的基礎(chǔ)接口為同步的基礎(chǔ)接口時(shí),調(diào)用該同步的基礎(chǔ)接口并將其輸出參數(shù)存儲(chǔ)于異步接口表中。
優(yōu)選地,所述每個(gè)基礎(chǔ)接口都有對(duì)應(yīng)的配置輸入?yún)?shù),所述的配置輸入?yún)?shù)被存儲(chǔ)于入?yún)⒈碇校?/p>
所述通過(guò)基礎(chǔ)接口配置表查找每個(gè)基礎(chǔ)接口id對(duì)應(yīng)的基礎(chǔ)接口并調(diào)用處理時(shí)還具體包括:將所述輸入?yún)?shù)根據(jù)每個(gè)基礎(chǔ)接口的配置輸入?yún)?shù)轉(zhuǎn)換為對(duì)應(yīng)基礎(chǔ)接口的輸入?yún)?shù),然后根據(jù)每個(gè)基礎(chǔ)接口及其輸入?yún)?shù)得出基礎(chǔ)接口的輸出參數(shù),并將所有的輸出參數(shù)組合轉(zhuǎn)換得到組合接口的輸出結(jié)果。
為了克服現(xiàn)有技術(shù)的不足,本發(fā)明的目的之二在于提供多數(shù)據(jù)源交互接口的調(diào)用方法,其能夠解決現(xiàn)有技術(shù)中。
本發(fā)明的目的之二采用以下技術(shù)方案實(shí)現(xiàn):
本發(fā)明還提供了多數(shù)據(jù)源交互接口的調(diào)用裝置,包括:
請(qǐng)求獲取模塊,用于獲取客戶端發(fā)送的組合接口調(diào)用請(qǐng)求;所述組合接口調(diào)用請(qǐng)求包括組合接口id和輸入?yún)?shù);
信息獲取模塊,用于在組合接口配置表中查找所述組合接口id所對(duì)應(yīng)的組合接口,所述組合接口的配置信息包括組合接口配置輸入?yún)?shù)和對(duì)應(yīng)的基礎(chǔ)接口id;
判斷模塊,將所述輸入?yún)?shù)與所述組合接口配置輸入?yún)?shù)作對(duì)比,查看所述輸入?yún)?shù)是否完整,若否,則返回客戶端或結(jié)束流程,若是,則執(zhí)行處理模塊;
處理模塊,用于通過(guò)基礎(chǔ)接口配置表查找每個(gè)基礎(chǔ)接口id對(duì)應(yīng)的基礎(chǔ)接口并調(diào)用處理,得出該組合接口的輸出結(jié)果并返回給客戶端。
優(yōu)選地,處理模塊的處理過(guò)程具體包括:
當(dāng)組合接口為同步接口,也即是每個(gè)基礎(chǔ)接口均為同步的基礎(chǔ)接口時(shí),調(diào)用每個(gè)基礎(chǔ)接口并處理得出對(duì)應(yīng)的基礎(chǔ)接口的輸出參數(shù),然后按照組合接口的輸出結(jié)果與對(duì)應(yīng)的基礎(chǔ)接口的輸出參數(shù)之間的映射關(guān)系,將所有的輸出參數(shù)轉(zhuǎn)換為組合接口的輸出結(jié)果,并返回給客戶端;所述組合接口的輸出結(jié)果與對(duì)應(yīng)的基礎(chǔ)接口的輸出參數(shù)之間的映射關(guān)系被存儲(chǔ)于一組合_基礎(chǔ)輸出映射表中;
當(dāng)組合接口為異步接口,也即是存在有一個(gè)或一個(gè)以上的基礎(chǔ)接口為異步的基礎(chǔ)接口時(shí),調(diào)用每個(gè)基礎(chǔ)接口并處理,然后生成該組合接口對(duì)應(yīng)的一流水號(hào),將所述流水號(hào)返回給客戶端。
優(yōu)選地,所述組合接口為異步接口時(shí),還包括:
當(dāng)存在有一個(gè)或以上的基礎(chǔ)接口為同步的基礎(chǔ)接口時(shí),調(diào)用該同步的基礎(chǔ)接口并將其輸出參數(shù)存儲(chǔ)于異步接口表中。
優(yōu)選地,所述每個(gè)基礎(chǔ)接口都有對(duì)應(yīng)的配置輸入?yún)?shù),所述的配置輸入?yún)?shù)被存儲(chǔ)于入?yún)⒈碇校?/p>
所述通過(guò)基礎(chǔ)接口配置表查找每個(gè)基礎(chǔ)接口id對(duì)應(yīng)的基礎(chǔ)接口并調(diào)用處理時(shí)還具體包括:
將所述輸入?yún)?shù)根據(jù)每個(gè)基礎(chǔ)接口的配置輸入?yún)?shù)轉(zhuǎn)換為對(duì)應(yīng)基礎(chǔ)接口的輸入?yún)?shù),然后根據(jù)每個(gè)基礎(chǔ)接口及其輸入?yún)?shù)得出基礎(chǔ)接口的輸出參數(shù),并將所有的輸出參數(shù)組合轉(zhuǎn)換得到組合接口的輸出結(jié)果。
相比現(xiàn)有技術(shù),本發(fā)明的有益效果在于:通過(guò)對(duì)封裝后的基礎(chǔ)接口進(jìn)行配置實(shí)現(xiàn),從而可使得工作人員可根據(jù)自己的需求自行配置所需要功能的組合接口,減少開(kāi)發(fā)工作人員的工作量,方便客戶根據(jù)自己的需求自行配置添加接口,方便直觀;在接口調(diào)用的過(guò)程中,處理速度非??臁A硗?,隨著接入的數(shù)據(jù)域和基礎(chǔ)接口數(shù)量的增加,本發(fā)明還具有良好的擴(kuò)展性。
附圖說(shuō)明
圖1為本發(fā)明提供的一實(shí)施例的方法流程圖;
圖2為本發(fā)明提供的一實(shí)施例的模塊結(jié)構(gòu)圖。
具體實(shí)施方式
下面,結(jié)合附圖以及具體實(shí)施方式,對(duì)本發(fā)明做進(jìn)一步描述:
如圖1所示,本發(fā)明提供了一種多數(shù)據(jù)源交互接口的調(diào)用方法,在用戶通過(guò)客戶端與服務(wù)器交互之前,首先工作人員需要對(duì)接口進(jìn)行配置,一般來(lái)說(shuō)接口包括基礎(chǔ)接口和組合接口,基礎(chǔ)接口是指其能夠?qū)崿F(xiàn)一些基本功能,是經(jīng)過(guò)數(shù)據(jù)提供商的開(kāi)發(fā)人員進(jìn)行封裝后提供的接口,該基礎(chǔ)接口有輸入?yún)?shù)和輸出參數(shù)以及如何將輸入?yún)?shù)處理轉(zhuǎn)換為輸出參數(shù)的方法等。而組合接口是指由多個(gè)基礎(chǔ)接口組合共同完成一些復(fù)雜的功能,在原來(lái)的開(kāi)發(fā)模式下,該組合接口也是通過(guò)開(kāi)發(fā)人員進(jìn)行直接開(kāi)發(fā)并封裝后供用戶使用,但是不同的用戶需要的組合接口不同,這就造成不停的開(kāi)發(fā)各種不同的組合接口,甚至?xí)霈F(xiàn)大量重復(fù)性的工作,而且對(duì)于基礎(chǔ)解決和組合接口的實(shí)現(xiàn)都是存儲(chǔ)于數(shù)據(jù)庫(kù)上,這樣導(dǎo)致后期的維護(hù)成本大大增加。而本申請(qǐng)中則采用一種通過(guò)配置的方式來(lái)實(shí)現(xiàn)上述組合接口,因?yàn)橐话憬M合接口的實(shí)現(xiàn)是需要通過(guò)多個(gè)基礎(chǔ)接口共同完成來(lái)實(shí)現(xiàn)的,通過(guò)配置的方式將一個(gè)組合接口與對(duì)應(yīng)的多個(gè)基礎(chǔ)接口形成映射關(guān)系,這樣,當(dāng)調(diào)用一個(gè)組合接口時(shí),調(diào)用對(duì)應(yīng)的基礎(chǔ)接口進(jìn)行處理,然后對(duì)所有的基礎(chǔ)接口的輸出參數(shù)進(jìn)行整合或者轉(zhuǎn)換得到組合接口的輸出結(jié)果,這樣極大節(jié)省了開(kāi)發(fā)人員的工作量,減少了大量重復(fù)的開(kāi)發(fā)。也即是,當(dāng)用戶需要調(diào)用組合接口時(shí),首先對(duì)基礎(chǔ)接口進(jìn)行調(diào)用處理,然后將輸出參數(shù)進(jìn)行轉(zhuǎn)換處理后得到最終的輸出結(jié)果。
一般來(lái)說(shuō),基礎(chǔ)接口都是普遍存在的,經(jīng)過(guò)開(kāi)發(fā)人員進(jìn)行打包封裝提供給客戶使用的。當(dāng)需要進(jìn)行復(fù)雜的功能時(shí),工作人員通過(guò)客戶端對(duì)組合接口進(jìn)行配置,首先根據(jù)不同的功能定義出不同的組合接口,然后將所有的組合接口都配置于一組合接口配置表中,該組合接口配置表用于存儲(chǔ)組合接口的配置信息,每一個(gè)組合接口包括組合接口id、組合接口名稱(chēng)、組合接口配置輸入?yún)?shù)、對(duì)應(yīng)的基礎(chǔ)接口id等等相關(guān)的配置信息,并將該組合接口配置表存儲(chǔ)于服務(wù)器上。另外,基礎(chǔ)接口也被配置于一基礎(chǔ)接口配置表中,每一個(gè)基礎(chǔ)接口也包括基礎(chǔ)接口id、基礎(chǔ)接口名稱(chēng)、基礎(chǔ)接口配置輸入?yún)?shù)、基礎(chǔ)接口輸出參數(shù)、基礎(chǔ)接口的處理方法等等相關(guān)信息,這些相關(guān)信息可根據(jù)具體的需要進(jìn)行配置即可。另外,還配置對(duì)應(yīng)的入?yún)⒈砗统鰠⒈?,入?yún)⒈碛糜谂渲没A(chǔ)接口的配置輸入?yún)?shù),其包括配置輸入?yún)?shù)的類(lèi)型、大小等信息;所述出參表用于配置存儲(chǔ)基礎(chǔ)接口的輸出參數(shù),比如輸出參數(shù)的類(lèi)型、大小等。另外,工作人員還建立一組合_基礎(chǔ)輸出映射表,該表用于存儲(chǔ)組合接口的輸出結(jié)果與對(duì)應(yīng)的基礎(chǔ)接口輸出參數(shù)之間的映射關(guān)系,比如一個(gè)組合接口有三個(gè)基礎(chǔ)接口,組合接口的輸出結(jié)果是通過(guò)對(duì)應(yīng)的三個(gè)基礎(chǔ)接口的輸出參數(shù)組合得到,上述表中就存儲(chǔ)了這個(gè)組合接口的輸出參數(shù)與上述三個(gè)基礎(chǔ)接口的輸出參數(shù)的一種映射關(guān)系,也即是如何通過(guò)三個(gè)基礎(chǔ)接口的輸出參數(shù)來(lái)得到組合接口的輸出參數(shù)。當(dāng)調(diào)用組合接口時(shí),首先需要對(duì)該組合接口中的所有的基礎(chǔ)接口調(diào)用處理并得出輸出參數(shù),然后再將該輸出參數(shù)轉(zhuǎn)換映射為組合接口的輸出參數(shù)之后,再返回給客戶端。這種配置方法,可根據(jù)自身的需求功能自定義組合接口,對(duì)于工作人員來(lái)說(shuō),非常直觀方便,相對(duì)于原來(lái)的直接開(kāi)發(fā)的方式,大大節(jié)省了工作人員的工作量,同時(shí),通過(guò)查表的方式調(diào)用對(duì)應(yīng)的接口,然后再通過(guò)對(duì)應(yīng)的接口id直接調(diào)用對(duì)應(yīng)的接口,其訪問(wèn)速度更快,而不是像以前那樣根據(jù)接口的輸入?yún)?shù)、輸出參數(shù)等相關(guān)數(shù)據(jù)在數(shù)據(jù)庫(kù)中查找接口(原有的方式中由于接口眾多,導(dǎo)致訪問(wèn)速度變慢)。
所述多數(shù)據(jù)源交互接口的調(diào)用方法,包括以下步驟:
S1:獲取客戶端發(fā)送的組合接口調(diào)用請(qǐng)求,所述組合接口調(diào)用請(qǐng)求包括組合接口id和輸入?yún)?shù)。
本步驟中,當(dāng)用戶需要調(diào)用某個(gè)接口來(lái)獲取數(shù)據(jù)時(shí),比如用于“查身份”功能,一般來(lái)說(shuō)需要中國(guó)金融認(rèn)證中心提供的3個(gè)基礎(chǔ)接口和銀聯(lián)智策提供的1個(gè)基礎(chǔ)接口來(lái)獲取數(shù)據(jù),在本發(fā)明中就將上述4個(gè)基礎(chǔ)接口組合一個(gè)組合接口,來(lái)實(shí)現(xiàn)上述功能,當(dāng)用戶需要實(shí)現(xiàn)該功能時(shí),只需調(diào)用對(duì)應(yīng)的組合接口,通過(guò)客戶端向服務(wù)器發(fā)送組合接口調(diào)用請(qǐng)求,該請(qǐng)求中包含有組合接口id和相應(yīng)的輸入?yún)?shù)。
S2:在組合接口配置表中查找所述組合接口id所對(duì)應(yīng)的組合接口,所述組合接口的配置信息包括組合接口名稱(chēng)、組合接口配置輸入?yún)?shù)和對(duì)應(yīng)的基礎(chǔ)接口id。該組合接口配置表可以以緩存表的方式存在于服務(wù)器,在處理時(shí),訪問(wèn)速度就比較快。
當(dāng)接收到客戶端發(fā)送的組合接口調(diào)用請(qǐng)求后,首先從該調(diào)用請(qǐng)求中獲取組合接口id,然后根據(jù)該組合接口id從組合接口配置表中獲取到組合接口以及其組合接口的配置信息,該組合接口的配置信息可能包括組合接口名稱(chēng)、組合接口配置輸入?yún)?shù)以及對(duì)應(yīng)的基礎(chǔ)接口id。當(dāng)然,該步驟中可能還存在找不到該組合接口id,則說(shuō)明用戶的組合接口調(diào)用請(qǐng)求有誤,返回錯(cuò)誤信息告知客戶端即可。
S3:將所述輸入?yún)?shù)與組合接口配置輸入?yún)?shù)作對(duì)比,查看所述輸入?yún)?shù)是否完整,若否,則返回客戶端或者結(jié)束流程;若是,則執(zhí)行S4。
在調(diào)用基礎(chǔ)接口之前,首先要對(duì)輸入?yún)?shù)進(jìn)行判斷其完整性,也即是說(shuō)根據(jù)組合接口配置輸入?yún)?shù)判斷組合接口調(diào)用請(qǐng)求中的輸入?yún)?shù)是否完整,比如輸入?yún)?shù)的類(lèi)型、大小等是否合法或者完整,若不完整,則說(shuō)明輸入有誤,返回錯(cuò)誤信息給客戶端提示用戶;若完整則,繼續(xù)進(jìn)行下一步處理。
S4:在基礎(chǔ)接口配置表中分別查找每個(gè)基礎(chǔ)接口id對(duì)應(yīng)的基礎(chǔ)接口并調(diào)用處理,得出組合接口的輸出結(jié)果并返回給客戶端。
本步驟中,當(dāng)通過(guò)組合接口id找到了該組合接口對(duì)應(yīng)的所有的基礎(chǔ)接口id時(shí),需要在基礎(chǔ)接口配置表中查找每個(gè)基礎(chǔ)接口id對(duì)應(yīng)的基礎(chǔ)接口,然后對(duì)每個(gè)基礎(chǔ)接口進(jìn)行調(diào)用處理得到對(duì)應(yīng)的輸出參數(shù),最后將所有的輸出參數(shù)組合得到該組合接口的輸出結(jié)果并返回給客戶端。
進(jìn)一步地,每個(gè)基礎(chǔ)接口都有其配置信息,包括配置輸入?yún)?shù)、輸出參數(shù)、基礎(chǔ)接口的名稱(chēng)等等,其中配置輸入?yún)?shù)的信息被存儲(chǔ)于一入?yún)⒈碇?,比如配置輸入?yún)?shù)的類(lèi)型、大小。當(dāng)通過(guò)基礎(chǔ)接口id查找到對(duì)應(yīng)的基礎(chǔ)接口時(shí),首先根據(jù)每個(gè)基礎(chǔ)接口的配置輸入?yún)?shù)將組合調(diào)用請(qǐng)求中的輸入?yún)?shù)轉(zhuǎn)換為對(duì)應(yīng)的輸入?yún)?shù),然后再根據(jù)每個(gè)基礎(chǔ)接口及其輸入?yún)?shù)得出基礎(chǔ)接口的輸出參數(shù),最后將所有的輸出參數(shù)根據(jù)組合_基礎(chǔ)輸出映射表得到該組合接口的輸出結(jié)果,并將輸出結(jié)果返回給客戶端。其中組合_基礎(chǔ)輸出映射表用于存儲(chǔ)組合接口的輸出結(jié)果與對(duì)應(yīng)的基礎(chǔ)接口的輸出參數(shù)之間的映射關(guān)系。比如,在調(diào)用組合接口時(shí),首先調(diào)用并處理組合接口對(duì)應(yīng)的所有的基礎(chǔ)接口,得到每個(gè)基礎(chǔ)接口對(duì)應(yīng)的輸出參數(shù),然后將這些輸出參數(shù)根據(jù)上述組合_基礎(chǔ)輸出映射表所存儲(chǔ)的映射關(guān)系得到組合接口的輸出結(jié)果。
進(jìn)一步地,由于接口的類(lèi)型會(huì)存在有同步接口和異步接口,因此,本發(fā)明中所涉及到的組合接口也會(huì)分別同步接口和異步接口。一般來(lái)說(shuō)一個(gè)組合接口會(huì)包括有多個(gè)基礎(chǔ)接口,因此,若當(dāng)組合接口對(duì)應(yīng)的每個(gè)基礎(chǔ)接口均為同步接口時(shí),則認(rèn)為該組合接口為同步接口;若當(dāng)組合接口對(duì)應(yīng)的基礎(chǔ)接口中存在有一個(gè)為異步接口,則認(rèn)為該組合接口為異步接口。因此,S4具體還包括以下步驟:首先判斷所述組合接口的類(lèi)型:
S41:當(dāng)組合接口為同步接口時(shí),也即是所有的基礎(chǔ)接口均為同步的基礎(chǔ)接口,則調(diào)用每個(gè)基礎(chǔ)接口并處理得出對(duì)應(yīng)的輸出參數(shù),然后將所述輸出參數(shù)根據(jù)所述基礎(chǔ)_組合輸出映射表轉(zhuǎn)換為組合接口的輸出結(jié)果,并返回給客戶端。
S42:當(dāng)組合接口為異步接口時(shí),也即是該組合接口所對(duì)應(yīng)的基礎(chǔ)接口中存在一個(gè)或一個(gè)以上的異步接口,還包括:
當(dāng)所有的基礎(chǔ)接口均為異步接口時(shí),則調(diào)用所有的基礎(chǔ)接口并生成該組合接口對(duì)應(yīng)的一流水號(hào),將所述流水號(hào)返回給客戶端即可。
當(dāng)其中有一個(gè)基礎(chǔ)接口為同步的基礎(chǔ)接口,則調(diào)用該同步的基礎(chǔ)接口,并將其對(duì)應(yīng)的輸出參數(shù)首先存儲(chǔ)于異步接口表中;同時(shí)也調(diào)用異步的基礎(chǔ)接口并生成該組合接口對(duì)應(yīng)的一流水號(hào),將所述流水號(hào)返回給客戶端。
所述流水號(hào)是指服務(wù)器返回給客戶端的憑證,當(dāng)組合接口為異步接口時(shí),調(diào)用一個(gè)組合接口只會(huì)給客戶端返回一個(gè)唯一的一個(gè)流水號(hào);該流水號(hào)的作用就比如返回給客戶一流水號(hào),讓客戶等待一段時(shí)間,再返回輸出結(jié)果。另外,由于異步的基礎(chǔ)接口的存在,可能會(huì)導(dǎo)致輸出參數(shù)不會(huì)實(shí)時(shí)地得出,而同步的基礎(chǔ)接口的輸出參數(shù)能夠?qū)崟r(shí)得到,因此當(dāng)組合接口為異步接口時(shí),首先將同步的基礎(chǔ)接口輸出參數(shù)保存下來(lái),等待其他異步接口的輸出參數(shù),以便最后將同步的基礎(chǔ)接口的輸出參數(shù)和異步的基礎(chǔ)接口的輸出參數(shù)進(jìn)行組合轉(zhuǎn)換得到客戶最終所需要的輸出結(jié)果。
如圖2所示,本發(fā)明還提供了多數(shù)據(jù)源交互接口的調(diào)用裝置,其包括:
請(qǐng)求獲取模塊,用于獲取客戶端發(fā)送的組合接口調(diào)用請(qǐng)求;所述組合接口調(diào)用請(qǐng)求包括組合接口id和輸入?yún)?shù);
信息獲取模塊,用于在組合接口配置表中查找所述組合接口id所對(duì)應(yīng)的組合接口,所述組合接口的配置信息包括組合接口配置輸入?yún)?shù)和對(duì)應(yīng)的基礎(chǔ)接口id;
判斷模塊,將所述輸入?yún)?shù)與所述組合接口配置輸入?yún)?shù)作對(duì)比,查看所述輸入?yún)?shù)是否完整,若否,則返回客戶端或結(jié)束流程,若是,則執(zhí)行處理模塊;
處理模塊,用于通過(guò)基礎(chǔ)接口配置表查找每個(gè)基礎(chǔ)接口id對(duì)應(yīng)的基礎(chǔ)接口并調(diào)用處理,得出該組合接口的輸出結(jié)果并返回給客戶端。
優(yōu)選地,處理模塊的處理過(guò)程具體包括:
當(dāng)組合接口為同步接口,也即是每個(gè)基礎(chǔ)接口均為同步的基礎(chǔ)接口時(shí),調(diào)用每個(gè)基礎(chǔ)接口并處理得出對(duì)應(yīng)的基礎(chǔ)接口的輸出參數(shù),然后按照組合接口的輸出結(jié)果與對(duì)應(yīng)的基礎(chǔ)接口的輸出參數(shù)之間的映射關(guān)系,將所有的輸出參數(shù)轉(zhuǎn)換為組合接口的輸出結(jié)果,并返回給客戶端;所述組合接口的輸出結(jié)果與對(duì)應(yīng)的基礎(chǔ)接口的輸出參數(shù)之間的映射關(guān)系被存儲(chǔ)于一組合_基礎(chǔ)輸出映射表中;
當(dāng)組合接口為異步接口,也即是存在有一個(gè)或一個(gè)以上的基礎(chǔ)接口為異步的基礎(chǔ)接口時(shí),調(diào)用每個(gè)基礎(chǔ)接口并處理,然后生成該組合接口對(duì)應(yīng)的一流水號(hào),將所述流水號(hào)返回給客戶端。
優(yōu)選地,所述組合接口為異步接口時(shí),還包括:
當(dāng)存在有一個(gè)或以上的基礎(chǔ)接口為同步的基礎(chǔ)接口時(shí),調(diào)用該同步的基礎(chǔ)接口并將其輸出參數(shù)存儲(chǔ)于異步接口表中。
優(yōu)選地,所述每個(gè)基礎(chǔ)接口都有對(duì)應(yīng)的配置輸入?yún)?shù),所述的配置輸入?yún)?shù)被存儲(chǔ)于入?yún)⒈碇校?/p>
所述通過(guò)基礎(chǔ)接口配置表查找每個(gè)基礎(chǔ)接口id對(duì)應(yīng)的基礎(chǔ)接口并調(diào)用處理時(shí)還具體包括:
將所述輸入?yún)?shù)根據(jù)每個(gè)基礎(chǔ)接口的配置輸入?yún)?shù)轉(zhuǎn)換為對(duì)應(yīng)基礎(chǔ)接口的輸入?yún)?shù),然后根據(jù)每個(gè)基礎(chǔ)接口及其輸入?yún)?shù)得出基礎(chǔ)接口的輸出參數(shù),并將所有的輸出參數(shù)組合轉(zhuǎn)換得到組合接口的輸出結(jié)果。
本發(fā)明采用對(duì)封裝后的基礎(chǔ)接口進(jìn)行配置,從而能夠使得工作人員根據(jù)自己自定義的方式定義出符合自身需求所使用的組合接口,非常直觀方便;另外,這種配置方式,在以后接入的數(shù)據(jù)域和接觸接口總數(shù)逐漸增加的情況下,相對(duì)于現(xiàn)有的直接開(kāi)發(fā)的方式(原來(lái)的直接開(kāi)發(fā)的方式存在有大量重復(fù)開(kāi)發(fā)的工作),其大大節(jié)省了開(kāi)發(fā)人員的工作量,具有良好的可擴(kuò)展性。
另外,工作人員還給所有的組合接口統(tǒng)一提供一接入url,在用戶調(diào)用組合接口時(shí),通過(guò)http的連接方式將客戶端與服務(wù)器連接。這樣方便對(duì)接口進(jìn)行統(tǒng)一管理,極大方便了計(jì)費(fèi)、日志管理、數(shù)據(jù)存儲(chǔ)等模塊。
本發(fā)明在接口調(diào)用的效率也非常高,比如在一般的8g內(nèi)存、CPU為3Ghz的服務(wù)器上,能夠?qū)崿F(xiàn)100個(gè)/秒的應(yīng)用調(diào)用頻率;在對(duì)多個(gè)基礎(chǔ)接口的調(diào)用處理上采用并行處理,通過(guò)讀取緩存中的配置來(lái)調(diào)用接口,極大地提高了接口調(diào)用的效率。
對(duì)本領(lǐng)域的技術(shù)人員來(lái)說(shuō),可根據(jù)以上描述的技術(shù)方案以及構(gòu)思,做出其它各種相應(yīng)的改變以及形變,而所有的這些改變以及形變都應(yīng)該屬于本發(fā)明權(quán)利要求的保護(hù)范圍之內(nèi)。