一種獲取api資源的方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及通信技術(shù)領(lǐng)域,尤其涉及一種獲取API資源的方法及裝置。
【背景技術(shù)】
[0002]隨著通信技術(shù)的飛速發(fā)展,越來(lái)越多的用戶通過(guò)終端獲取免費(fèi)的API(Applicat1n Programming Interface ;應(yīng)用程序編程接口)資源(如在線地圖資源等),其中,終端通常通過(guò)登錄集成有API資源的運(yùn)營(yíng)商頁(yè)面,該運(yùn)營(yíng)商通過(guò)上述API資源的提供商獲取API資源。
[0003]由于集成有不同API資源的任意一個(gè)運(yùn)營(yíng)商對(duì)應(yīng)的免費(fèi)API調(diào)用次數(shù)不同,因此,當(dāng)運(yùn)營(yíng)商所服務(wù)的用戶數(shù)目龐大時(shí),大量的API資源請(qǐng)求將導(dǎo)致該運(yùn)營(yíng)商對(duì)應(yīng)的免費(fèi)API資源被快速消耗完畢,此時(shí),當(dāng)仍存在用戶請(qǐng)求獲取上述API資源時(shí),運(yùn)營(yíng)商將需要通過(guò)付費(fèi)方式獲取非免費(fèi)API資源,從而增加了成本。
[0004]例如,在用戶通過(guò)終端登錄集成Map A工具的運(yùn)營(yíng)商頁(yè)面查找運(yùn)營(yíng)商網(wǎng)點(diǎn)、wifi熱點(diǎn)、合作伙伴等位置信息時(shí),上述提供Map A工具的公司對(duì)該MapA提供的免費(fèi)API調(diào)用次數(shù)規(guī)定了上限API調(diào)用次數(shù),每天每個(gè)API的上限調(diào)用次數(shù)為N次。參閱圖1所示,終端獲取Map A對(duì)應(yīng)的API資源的流程為:
[0005]步驟100:終端接收用戶指示,登錄運(yùn)營(yíng)商A的頁(yè)面,并切換至Map A對(duì)應(yīng)的功能頁(yè)面。
[0006]步驟110:終端根據(jù)用戶的指示,向運(yùn)營(yíng)商A的服務(wù)器發(fā)送API資源請(qǐng)求消息。
[0007]步驟120:運(yùn)營(yíng)商A的服務(wù)器接收到該API資源請(qǐng)求消息后,將該API資源請(qǐng)求消息發(fā)送至Map A對(duì)應(yīng)的服務(wù)器。
[0008]步驟130:Map A對(duì)應(yīng)的服務(wù)器接收到上述API資源請(qǐng)求消息后,查詢本地存儲(chǔ)的當(dāng)前時(shí)刻運(yùn)營(yíng)商A的可用API資源調(diào)用次數(shù),若該可用API資源調(diào)用次數(shù)不為零,則將該可用API資源調(diào)用次數(shù)減一后,更新可用API資源調(diào)用次數(shù),并返回API資源響應(yīng)消息;若該可用API資源調(diào)用次數(shù)為零,則運(yùn)營(yíng)商A需要向Map A對(duì)應(yīng)的服務(wù)器付費(fèi),當(dāng)Map A對(duì)應(yīng)的服務(wù)器確認(rèn)付費(fèi)成功后,返回API資源響應(yīng)消息。
[0009]其中,若運(yùn)營(yíng)商A當(dāng)天在上述API資源請(qǐng)求消息之前未發(fā)起任意一 API資源請(qǐng)求消息,則上述可用API資源調(diào)用次數(shù)即為上限調(diào)用次數(shù)。
[0010]步驟140:運(yùn)營(yíng)商A將上述API資源響應(yīng)消息轉(zhuǎn)發(fā)至終端。
[0011]步驟150:終端根據(jù)上述API資源響應(yīng)消息,在本地呈現(xiàn)Map A調(diào)用結(jié)果。
[0012]通常,當(dāng)可用API資源調(diào)用次數(shù)為零,且運(yùn)營(yíng)商A不對(duì)API資源付費(fèi)時(shí),終端將呈現(xiàn)錯(cuò)誤頁(yè)面。
[0013]由此可見(jiàn),目前在終端請(qǐng)求API資源的過(guò)程中,存在當(dāng)已用API調(diào)用次數(shù)達(dá)到上限API調(diào)用次數(shù)時(shí),終端無(wú)法獲取API資源,以及獲取API資源成本高的問(wèn)題。
【發(fā)明內(nèi)容】
[0014]本發(fā)明實(shí)施例提供一種獲取API資源的方法及裝置,用以解決目前在終端請(qǐng)求API資源的過(guò)程中,存在當(dāng)已用API調(diào)用次數(shù)達(dá)到上限API調(diào)用次數(shù)時(shí),終端無(wú)法獲取API資源,以及獲取API資源成本高的問(wèn)題。
[0015]本發(fā)明實(shí)施例提供的具體技術(shù)方案如下:
[0016]第一方面,提供一種獲取API資源的方法,包括:
[0017]接收在預(yù)設(shè)時(shí)長(zhǎng)范圍內(nèi)各個(gè)終端發(fā)送的應(yīng)用程序編程接口 API資源請(qǐng)求消息;
[0018]根據(jù)所述預(yù)設(shè)時(shí)長(zhǎng)范圍內(nèi)各個(gè)終端發(fā)送的API資源請(qǐng)求消息,生成一個(gè)API請(qǐng)求包;
[0019]將所述API請(qǐng)求包發(fā)送至API服務(wù)器,并接收所述API服務(wù)器發(fā)送的API資源響應(yīng)消息;
[0020]根據(jù)所述API請(qǐng)求包中包含的所述API資源請(qǐng)求消息所對(duì)應(yīng)的終端,對(duì)所述API資源響應(yīng)消息進(jìn)行拆分,將拆分后生成的API資源響應(yīng)子消息發(fā)送至相應(yīng)的所述終端。
[0021]結(jié)合第一方面,在第一種可能的實(shí)現(xiàn)方式中,根據(jù)所述預(yù)設(shè)時(shí)長(zhǎng)范圍內(nèi)各個(gè)終端發(fā)送的API資源請(qǐng)求消息,生成一個(gè)API請(qǐng)求包之前,判定所述API資源請(qǐng)求消息數(shù)量未達(dá)到預(yù)設(shè)消息數(shù)量門(mén)限值,且獲取的可用API資源調(diào)用次數(shù)大于預(yù)設(shè)可用API資源調(diào)用次數(shù)門(mén)限值。
[0022]結(jié)合第一方面的第一種可能的實(shí)現(xiàn)方式,在第二種可能的實(shí)現(xiàn)方式中,當(dāng)判定所述API資源請(qǐng)求消息數(shù)量達(dá)到預(yù)設(shè)消息數(shù)量門(mén)限值,或者,所述可用API資源調(diào)用次數(shù)小于預(yù)設(shè)可用API調(diào)用次數(shù)門(mén)限值時(shí),根據(jù)所述各個(gè)終端發(fā)送的API資源請(qǐng)求消息,分別獲取每一個(gè)所述終端的性能參數(shù),并根據(jù)所述性能參數(shù)達(dá)到預(yù)設(shè)參數(shù)門(mén)限值的所有終端對(duì)應(yīng)的API資源請(qǐng)求消息,生成高優(yōu)先級(jí)請(qǐng)求包;將所述高優(yōu)先級(jí)請(qǐng)求包發(fā)送至所述API服務(wù)器,并接收所述API服務(wù)器發(fā)送的API資源響應(yīng)消息;根據(jù)所述高優(yōu)先級(jí)請(qǐng)求包中包含的API資源請(qǐng)求消息所對(duì)應(yīng)的終端,對(duì)所述API資源響應(yīng)消息進(jìn)行拆分;將拆分后生成的API資源響應(yīng)子消息發(fā)送至性能參數(shù)達(dá)到預(yù)設(shè)參數(shù)門(mén)限值的相應(yīng)終端。
[0023]結(jié)合第一方面的第一種可能的實(shí)現(xiàn)方式,在第三種可能的實(shí)現(xiàn)方式中,當(dāng)判定所述API資源請(qǐng)求消息數(shù)量達(dá)到預(yù)設(shè)消息數(shù)量門(mén)限值,或者,所述可用API資源調(diào)用次數(shù)小于預(yù)設(shè)可用API調(diào)用次數(shù)門(mén)限值時(shí),獲取所述性能參數(shù)未達(dá)到預(yù)設(shè)參數(shù)門(mén)限值的所有終端對(duì)應(yīng)的API資源請(qǐng)求消息;根據(jù)所述性能參數(shù)未達(dá)到預(yù)設(shè)參數(shù)門(mén)限值的所有終端對(duì)應(yīng)的API資源請(qǐng)求消息,生成低優(yōu)先級(jí)請(qǐng)求包;將高優(yōu)先級(jí)請(qǐng)求包發(fā)送至API服務(wù)器之后,獲取所述低優(yōu)先級(jí)請(qǐng)求包對(duì)應(yīng)的發(fā)送參數(shù);若所述發(fā)送參數(shù)達(dá)到預(yù)設(shè)發(fā)送參數(shù)門(mén)限值,則將所述低優(yōu)先級(jí)請(qǐng)求包發(fā)送至所述API服務(wù)器,并接收所述API服務(wù)器發(fā)送的API資源響應(yīng)消息;根據(jù)所述低優(yōu)先級(jí)請(qǐng)求包中包含的API資源請(qǐng)求消息所對(duì)應(yīng)的終端,對(duì)所述API資源響應(yīng)消息進(jìn)行拆分;將拆分后生成的API資源響應(yīng)子消息發(fā)送至性能參數(shù)未達(dá)到預(yù)設(shè)參數(shù)門(mén)限值的相應(yīng)終端。
[0024]結(jié)合第一方面的第三種可能的實(shí)現(xiàn)方式,在第四種可能的實(shí)現(xiàn)方式中,獲取所述低優(yōu)先級(jí)請(qǐng)求包對(duì)應(yīng)的發(fā)送參數(shù)的方法,包括:獲取當(dāng)前時(shí)刻的可用API資源調(diào)用次數(shù);對(duì)所述當(dāng)前時(shí)刻的可用API資源調(diào)用次數(shù),以及所述低優(yōu)先級(jí)請(qǐng)求包中每一條API資源請(qǐng)求消息分別對(duì)應(yīng)的終端的性能參數(shù)進(jìn)行加權(quán)求和,獲取所述低優(yōu)先級(jí)請(qǐng)求包對(duì)應(yīng)的發(fā)送參數(shù)。
[0025]第二方面,提供一種獲取API資源的裝置,包括:
[0026]第一接收單元,用于接收在預(yù)設(shè)時(shí)長(zhǎng)范圍內(nèi)各個(gè)終端發(fā)送的應(yīng)用程序編程接口API資源請(qǐng)求消息,并將所述API資源請(qǐng)求消息發(fā)送至生成單元;
[0027]生成單元,用于接收所述第一接收單元發(fā)送的API資源請(qǐng)求消息,并根據(jù)所述預(yù)設(shè)時(shí)長(zhǎng)范圍內(nèi)各個(gè)終端發(fā)送的API資源請(qǐng)求消息,生成一個(gè)API請(qǐng)求包;
[0028]第一發(fā)送單元,用于獲取所述生成單元生成的所述API請(qǐng)求包,將所述API請(qǐng)求包發(fā)送至API服務(wù)器;
[0029]第二接收單元,用于接收所述API服務(wù)器發(fā)送的API資源響應(yīng)消息,并將所述API資源響應(yīng)消息發(fā)送至拆分單元;
[0030]拆分單元,用于接收所述第二接收單元發(fā)送的API資源響應(yīng)消息,根據(jù)所述API請(qǐng)求包中包含的所述API資源請(qǐng)求消息所對(duì)應(yīng)的終端,對(duì)所述API資源響應(yīng)消息進(jìn)行拆分獲取API資源響應(yīng)子消息,并將所述API資源響應(yīng)子消息發(fā)送至第二發(fā)送單元;
[0031]第二發(fā)送單元,用于接收所述拆分單元發(fā)送的API資源響應(yīng)子消息,并將所述API資源響應(yīng)子消息發(fā)送至相應(yīng)的所述終端。
[0032]結(jié)合第二方面,在第一種可能的實(shí)現(xiàn)方式中,所述裝置還包括判定單元,用于:根據(jù)所述預(yù)設(shè)時(shí)長(zhǎng)范圍內(nèi)各個(gè)終端發(fā)送的API資源請(qǐng)求消息,生成一個(gè)API請(qǐng)求包之前,判定所述API資源請(qǐng)求消息數(shù)量未達(dá)到預(yù)設(shè)消息數(shù)量門(mén)限值,且獲取的可用API資源調(diào)用次數(shù)大于預(yù)設(shè)可用API資源調(diào)用次數(shù)門(mén)限值。
[0033]結(jié)合第二方面第一種可能的實(shí)現(xiàn)方式,在第二種可能的實(shí)現(xiàn)方式中,所述裝置還包括處理單元,用于:當(dāng)判定所述API資源請(qǐng)求消息數(shù)量達(dá)到預(yù)設(shè)消息數(shù)量門(mén)限值,或者,所述可用API資源調(diào)用次數(shù)小于預(yù)設(shè)可用API調(diào)用次數(shù)門(mén)限值時(shí),根據(jù)所述各個(gè)終端發(fā)送的API資源請(qǐng)求消息,分別獲取每一個(gè)所述終端的性能參數(shù),并根據(jù)所述性能參數(shù)達(dá)到預(yù)設(shè)參數(shù)門(mén)限值的所有終端對(duì)應(yīng)的API資源請(qǐng)求消息,生成高優(yōu)先級(jí)請(qǐng)求包;將所述高優(yōu)先級(jí)請(qǐng)求包發(fā)送至所述API服務(wù)器,并接收所述API