Http應用程序接口調用方法與裝置制造方法
【專利摘要】本發明實施例公開了一種HTTP應用程序接口調用方法與裝置。其中,該方法包括根據業務需求和系統性能需求確定各開放平臺中的應用程序接口API的調用分發機制;接收客戶端發起的API調用請求;判斷所請求的API調用所采用的機制;在所請求的API采用代理方式調用的情況下,由API調度分發系統作為代理服務器向客戶端提供所請求的結果;在所請求的API采用HTTP重定向方式調用的情況下,向客戶端反饋重定向信息,以使客戶端根據獲取的重定向信息直接從目標開放平臺獲取請求結果。本發明實施例不僅兼顧了開發者對于開放平臺的開發需求,而且也滿足了運營商對于開放平臺的運營和性能需求。
【專利說明】HTTP應用程序接口調用方法與裝置
【技術領域】
[0001]本發明涉及互聯網綜合平臺領域,特別地,涉及一種HTTP應用程序接口調用方法
與裝置。
【背景技術】
[0002]目前,互聯網公司普遍將自身的核心服務以HTTP(HypertextTransfer Protocol,超文本傳輸協議)API (Application ProgramInterface,應用程序接口)的方式開放出來,供外界的合作伙伴和開發者調用,進而通過這種方式拓展自身業務能力的應用范圍。這種API開放的管理平臺稱之為開放平臺。隨著越來越多的開放平臺被架設,開發者如需集成多家開放平臺的能力,則需按照不同的流程和步驟接入多家開放平臺,同時還要適應各個開放平臺中不同風格的API接口,給開發者帶來了巨大的不便。
【發明內容】
[0003]本發明實施例要解決的一個技術問題是提供一種HTTP應用程序接口調用方法與裝置,不僅能夠為開發者提供統一風格的API接口,而且還可以滿足業務和系統性能的需求。
[0004]本發明實施例提供了一種HTTP應用程序接口調用方法,包括根據業務需求和系統性能需求確定各開放平臺中的應用程序接口 API的調用分發機制,調用分發機制包括代理方式和HTTP重定向方式;接收客戶端發起的API調用請求;判斷所請求的API調用所采用的機制;在所請求的API采用代理方式調用的情況下,由API調度分發系統作為代理服務器向客戶端提供所請求的結果;在所請求的API采用HTTP重定向方式調用的情況下,向客戶端反饋重定向信息,以使客戶端根據獲取的重定向信息直接從目標開放平臺獲取請求結果O
[0005]可選地,該方法還包括預先按照設定方式封裝各開放平臺中的API ;將封裝后的各開放平臺中的API注冊到API調度分發系統。
[0006]可選地,根據業務需求和系統性能需求確定各開放平臺中的應用程序接口 API的調用分發機制的步驟包括根據對各開放平臺中的API的管控力度確定是否采用代理方式;根據對各開放平臺中的API的調用效率的要求確定是否采用HTTP重定向方式。
[0007]可選地,由API調度分發系統作為代理服務器向客戶端提供所請求的結果的步驟包括根據API調用請求屬性向目標開放平臺發送代理請求;目標開放平臺向API調度分發系統返回請求結果;API調度分發系統將請求結果轉發給客戶端。
[0008]可選地,客戶端根據獲取的重定向信息直接從目標開放平臺獲取請求結果的步驟包括根據API調用請求屬性進行系統重定向,并將重定向信息發送至客戶端;客戶端根據重定向信息直接向目標開放平臺發起API調用請求;目標開放平臺將請求結果返回給客戶端。
[0009]本發明實施例還提供了一種HTTP應用程序接口調用裝置,包括調用分發機制確定單元,用于根據業務需求和系統性能需求確定各開放平臺中的應用程序接口 API的調用分發機制,調用分發機制包括代理方式和HTTP重定向方式;調用請求接收單元,用于接收客戶端發起的API調用請求;調用分發機制判斷單元,用于判斷所請求的API調用所采用的機制;代理方式處理單元,用于在所請求的API采用代理方式調用的情況下,將HTTP應用程序接口調用裝置作為代理服務器向客戶端提供所請求的結果;重定向方式處理單元,用于在所請求的API采用HTTP重定向方式調用的情況下,向客戶端反饋重定向信息,以使客戶端根據獲取的重定向信息直接從目標開放平臺獲取請求結果。
[0010]可選地,該裝置還包括API封裝單元,用于預先按照設定方式封裝各開放平臺中的API ;API注冊單元,用于將封裝后的各開放平臺中的API注冊到API調度分發系統。
[0011]可選地,調用分發機制確定單元根據對各開放平臺中的API的管控力度確定是否采用代理方式,并根據對各開放平臺中的API的調用效率的要求確定是否采用HTTP重定向方式。
[0012]可選地,代理方式處理單元包括代理請求發送子單元,用于根據API調用請求屬性向目標開放平臺發送代理請求;請求結果接收子單元,用于接收目標開放平臺發送的請求結果;請求結果發送子單元,用于將請求結果轉發給客戶端。
[0013]本發明實施例提供的HTTP應用程序接口調用方法與裝置,可以通過HTTP重定向和代理(proxy)兩種方式對各開放平臺中的API進行調用,進而使得運營商可以根據業務需求和系統性能需求靈活地對各API進行系統配置,此外,API的調用者無需關心系統內部對API的調用方式。由此可見,本發明實施例不僅兼顧了開發者對于開放平臺的開發需求,而且也滿足了運營商對于開放平臺的運營和性能需求。
【專利附圖】
【附圖說明】
[0014]此處所說明的附圖用來提供對本發明的進一步理解,構成本申請的一部分。在附圖中:
[0015]圖1是本發明HTTP應用程序接口調用方法的一個實施例的流程示意圖。
[0016]圖2是本發明HTTP應用程序接口調用方法的另一實施例的流程示意圖。
[0017]圖3是本發明重定向方式的API調用示意圖。
[0018]圖4是本發明代理方式的API調用示意圖。
[0019]圖5是本發明HTTP應用程序接口調用裝置的一個實施例的結構示意圖。
[0020]圖6是本發明HTTP應用程序接口調用裝置的另一實施例的結構示意圖。
[0021]圖7是本發明HTTP應用程序接口調用裝置的又一實施例的結構示意圖。
【具體實施方式】
[0022]下面參照附圖對本發明進行更全面的描述,其中說明本發明的示例性實施例。本發明的示例性實施例及其說明用于解釋本發明,但并不構成對本發明的不當限定。
[0023]以下對至少一個示例性實施例的描述實際上僅僅是說明性的,決不作為對本發明及其應用或使用的任何限制。
[0024]本發明下述實施例通過API調度分發系統(又稱為HTTP應用程序接口調用裝置)對各開放平臺中的API進行集中管理與調度,開發者在調用API的時候只需要訪問本系統,本系統將根據調用的API注冊信息自動分發至各開放平臺,其中,API注冊信息指該API在本系統注冊時提供的API自身相關信息,如API名稱、API URL (UniversalResourceLocator,統一資源定位器)、API功能描述、API性能描述等。通過API注冊信息,運營商可以確定該API的調用方式。同時對于不同類別的API還可以提供不同類型的調用分發機制,以保證系統管理方對于API的調用效率和API的管控力度。對于管控力度要求高的API采取proxy方式,對于調用效率要求高的API采取HTTP重定向方式。
[0025]圖1是本發明HTTP應用程序接口調用方法的一個實施例的流程示意圖。
[0026]如圖1所示,該實施例可以包括以下步驟:
[0027]S102,根據業務需求和系統性能需求確定各開放平臺中的應用程序接口 API的調用分發機制,調用分發機制可以包括但不限于代理方式和HTTP重定向方式,由于代理方式下的所有請求都要經過平臺,而重定向方式是由系統重定向后由調用方和提供方直接對接,因此,代理方式對于API的管理較為嚴格,重定向方式對位API的管理較為寬松,進而可以根據業務需求和系統性能確定采用哪種方式;
[0028]S104,接收客戶端發起的API調用請求;
[0029]S106,判斷所請求的API調用所采用的機制;
[0030]S108,在所請求的API采用代理方式調用的情況下,由API調度分發系統作為代理服務器向客戶端提供所請求的結果;
[0031]S110,在所請求的API采用HTTP重定向方式調用的情況下,向客戶端反饋重定向信息,以使客戶端根據獲取的重定向信息直接從目標開放平臺獲取請求結果。
[0032]該實施例可以通過HTTP重定向和proxy兩種方式對各開放平臺中的API進行調用,進而使得運營商可以根據業務需求和系統性能需求靈活地對各API進行系統配置,此夕卜,API的調用者無需關心系統內部對API的調用方式,即API的調用方式對開發者不可見。由此可見,本發明實施例不僅兼顧了開發者對于開放平臺的開發需求,而且也滿足了運營商對于開放平臺的運營和性能需求。
[0033]圖2是本發明HTTP應用程序接口調用方法的另一實施例的流程示意圖。
[0034]如圖2所示,該實施例可以包括以下步驟:
[0035]S202,預先按照設定方式封裝各開放平臺中的API ;
[0036]S204,將封裝后的各開放平臺中的API注冊到API調度分發系統;
[0037]步驟S206-S214 與步驟 S102-S110 相同。
[0038]例如,可以首先制定一套標準的完全基于HTTP協議的接口方式,例如,REST(Representational State Transfer,表述性狀態轉移)風格的HTTP API,其他開放平臺的API均按照此方式封裝并在本系統中進行注冊,通過此方式,開發者僅需要熟悉一套通用標準的API調用方式即可使用本系統提供的多家開放平臺的API。
[0039]在該實施例中,各開放平臺均按照設定的統一格式對各開放平臺中的API進行封裝,使得API調用者可以方便地按照相同的流程和步驟調用多家開放平臺,為調用者提供了很大的便利性。
[0040]進一步地,步驟S102可以通過以下具體方式來實現:根據對各開放平臺中的API的管控力度確定是否采用代理方式;根據對各開放平臺中的API的調用效率的要求確定是否采用HTTP重定向方式。[0041]例如,對于管控力度要求高的API可以采用代理方式,對于調用效率要求高的API可以采用HTTP重定向方式,如果對這兩者均沒有限制,則可以采用任一種調用方式。
[0042]其中,涉及到用戶敏感信息、支付類接口等安全性要求較高的接口都屬于管控力度要求較高的API,此類接口通過代理方式可以提升數據在傳輸過稱中的安全性。在代理方式下,由于所有請求都由系統作為代理服務器進行轉發,即所有請求都會經過系統處理,因此資源消耗較大。在保證安全性和管控力度之外,可能會受到系統處理能力的限制,因此調用效率將會降低。
[0043]進一步地,步驟S108中的代理方式可以通過如下方式實現:根據API調用請求屬性向目標開放平臺發送代理請求;目標開放平臺向API調度分發系統返回請求結果;API調度分發系統將請求結果轉發給客戶端。
[0044]步驟SllO中的重定向方式可以通過如下方式實現:根據API調用請求屬性進行系統重定向,并將重定向信息發送至客戶端;客戶端根據重定向信息直接向目標開放平臺發起API調用請求;目標開放平臺將請求結果返回給客戶端。
[0045]其中,API調用請求屬性包括在進行API注冊時提供的API提供方、API名稱、API用途以及API作用。
[0046]在進行API注冊時,可以根據上述調用請求屬性確定是采用代理請求方式還是采用重定向方式。例如,某些API的調用涉及敏感信息、或者為支付類接口等安全性要求較高的接口,可以將對該類接口的調用設置為代理方式。
[0047]需要指出的是,在API調用過程中,還可以實時調整調用方式。例如,當某些API被調用的頻率較高,可以將其從代理模式調整為重定向模式,以降低對API調度分發系統的影響。
[0048]當采用重定向方式時,可以采用HTTP 307 (Temporary Redirect)方式,對于每一次調用請求,本系統都將視為一次完整的請求轉發。重定向后開發者都是與目標開放平臺直接進行交互,不經由API調度分發系統,因此重定向方式對系統性能消耗相對較小。因此,如對系統性能方面要求較高時,則可以采用重定向方式。如需將性能消耗降至最低,則可以將API調用請求屬性中的緩沖是否使能的開關設置為使能,在設定的系統緩沖期內,如果客戶端多次訪問目標開放平臺,則在第一次獲得目標開放平臺的重定向信息后無需再次經過API調度分發系統而可以直接訪問目標開放平臺。
[0049]接下來,再通過一個具體實例對HTTP應用程序接口調用方法進行說明。
[0050]對于API的接口規范,與本發明實施例相關的參數為cacheable,其類型為字符串,默認取值為true,該參數僅用于重定向方式。當cacheable為true時,API調度分發系統重定向響應將包括HTTP緩沖首部,在緩沖有效期內,應用可使用本地緩存的重定向響應直接訪問各開放平臺側接口,而無需API調度分發系統介入調用請求過程;當cacheable為false時,將強制API調度分發系統重定向響應不包括HTTP緩沖首部,應用的每次請求均將由經API調度分發系統重定向至實際的各開放平臺側調用接口。
[0051]換句話說,當cacheable參數設定為true時,系統將按照設定的緩存時間對調用請求進行緩存。緩存期內的接口調用將不經過系統重定向,由客戶端直接向目標開放平臺發起請求。當cacheable參數設定為false時,則每次客戶端的請求都將經過系統重定向。
[0052]舉例說明,如果某開發者短時間內調用同一 API 1000次,則將該參數設置為true,這樣在緩沖期內每次對該接口的調用將直接訪問目標開放平臺,不再經過API調度分發系統。當開發者需要確保每次請求都無誤的重定向至目標開放平臺時,則將該參數設置為false,這樣每次請求都由API調度分發系統根據API注冊信息重定向至正確的地址。
[0053]圖3是本發明重定向方式的API調用示意圖。
[0054]如圖3所示,該重定向方式的流程如下:
[0055]S302,客戶端向API調度分發系統發起API調用請求;
[0056]S304,API調度分發系統根據該API的請求屬性進行系統重定向,并將重定向信息發送至客戶端,其中,該重定向信息主要指該接口的真實URL ;
[0057]S306,客戶端根據重定向信息向目標開放平臺發起API調用請求;
[0058]S308,目標開放平臺向客戶端返回請求結果。
[0059]圖4是本發明代理方式的API調用示意圖。
[0060]如圖4所示,該代理方式的流程如下:
[0061]S402,客戶端向API調度分發系統發起API調用請求;
[0062]S404, API調度分發系統根據該API的請求屬性向目標開放平臺發起代理請求;
[0063]S406,目標開放平臺向API調度分發系統返回請求結果;
[0064]S408, API調度分發系統向客戶端返回請求結果。
[0065]本領域普通技術人員可以理解,實現上述方法實施例的全部和部分步驟可以通過程序指令相關的硬件來完成,前述的程序可以存儲于一計算設備可讀取存儲介質中,該程序在執行時,執行包括上述方法實施例的步驟,而前述的存儲介質可以包括ROM、RAM、磁碟和光盤等各種可以存儲程序代碼的介質。
[0066]圖5是本發明HTTP應用程序接口調用裝置的一個實施例的結構示意圖。
[0067]如圖5所示,該實施例中的裝置50可以包括調用分發機制確定單元502、調用請求接收單元504、調用分發機制判斷單元506、代理方式處理單元508和重定向方式處理單元510。
[0068]其中,調用分發機制確定單元502根據業務需求和系統性能需求確定各開放平臺中的應用程序接口 API的調用分發機制,調用分發機制包括代理方式和HTTP重定向方式;調用請求接收單元504接收客戶端發起的API調用請求;調用分發機制判斷單元506判斷所請求的API調用所采用的機制;在所請求的API采用代理方式調用的情況下,代理方式處理單元508將HTTP應用程序接口調用裝置作為代理服務器向客戶端提供所請求的結果;在所請求的API采用HTTP重定向方式調用的情況下,重定向方式處理單元510向客戶端反饋重定向信息,以使客戶端根據獲取的重定向信息直接從目標開放平臺獲取請求結果。
[0069]該實施例能夠對于調用頻次較高且管控力度較低、或可能對系統造成負載過重的API采取HTTP 307重定向的調用方式,而對于需對API調用進行諸如參數解析、計費和調用統計等高級控制的API采用代理方式進行調用,以確保對API調用的控制。可見,該實施例可以靈活地配置API的調用方式,一方面保證開發者可以正確地使用不同類型的HTTPAPI,另一方面,還可以充分利用硬件資源,實現以較小的資源消耗完成海量API調用的分發。
[0070]圖6是本發明HTTP應用程序接口調用裝置的另一實施例的結構示意圖。
[0071]如圖6所示,與圖5中的實施例相比,該實施例中的裝置60還包括API封裝單元602和API注冊單元604。[0072]其中,API封裝單元602預先按照設定方式封裝各開放平臺中的API ;API注冊單元604將封裝后的各開放平臺中的API注冊到API調度分發系統。
[0073]該實施例能夠通過API注冊的方式對多個開放平臺的API進行集中管理。
[0074]進一步地,調用分發機制確定單元根據對各開放平臺中的API的管控力度確定是否采用代理方式,并根據對各開放平臺中的API的調用效率的要求確定是否采用HTTP重定向方式。
[0075]圖7是本發明HTTP應用程序接口調用裝置的又一實施例的結構示意圖。
[0076]如圖7所示,與圖5中的實施例相比,該實施例中的裝置70中的代理方式處理單元702可以包括代理請求發送子單元702a、請求結果接收子單元702b和請求結果發送子單元 702c。
[0077]其中,代理請求發送子單元702a根據API調用請求屬性向目標開放平臺發送代理請求;請求結果接收子單元702b接收目標開放平臺發送的請求結果;請求結果發送子單元702c將請求結果轉發給客戶端。
[0078]本說明書中各個實施例均采用遞進的方式描述,每個實施例重點說明的都是與其他實施例的不同之處,各個實施例之間相同和相似的部分可以相互參見。對于裝置實施例而言,由于其與方法實施例基本相似,所以描述的比較簡單,相關之處可以參見方法實施例部分的說明。
[0079]本發明的上述實施例可以靈活地對API的調用方式進行配置,根據API的業務特點和性能特點加以區分,以保證系統的負載均衡,并滿足開發者和其他開放平臺的業務需求。
[0080]雖然已經通過示例對本發明的一些特定實施例進行了詳細說明,但是本領域的技術人員應該理解,以上示例僅是為了進行說明,而不是為了限制本發明的范圍。本領域的技術人員應該理解,可在不脫離本發明的范圍和精神的情況下,對以上實施例進行修改。本發明的范圍由所附權利要求來限定。
【權利要求】
1.一種HTTP應用程序接口調用方法,其特征在于,包括: 根據業務需求和系統性能需求確定各開放平臺中的應用程序接口 API的調用分發機制,所述調用分發機制包括代理方式和HTTP重定向方式; 接收客戶端發起的API調用請求; 判斷所請求的API調用所采用的機制; 在所請求的API采用代理方式調用的情況下,由API調度分發系統作為代理服務器向所述客戶端提供所請求的結果; 在所請求的API采用HTTP重定向方式調用的情況下,向所述客戶端反饋重定向信息,以使所述客戶端根據獲取的重定向信息直接從目標開放平臺獲取請求結果。
2.根據權利要求1所述的HTTP應用程序接口調用方法,其特征在于,所述方法還包括: 預先按照設定方式封裝各開放平臺中的API ; 將封裝后的各開放平臺中的API注冊到所述API調度分發系統。
3.根據權利要求1所述的HTTP應用程序接口調用方法,其特征在于,所述根據業務需求和系統性能需求確定各開放平臺中的應用程序接口 API的調用分發機制的步驟包括: 根據對各開放平臺中的API的管控力度確定是否采用代理方式; 根據對各開放平臺中的API的調用效率的要求確定是否采用HTTP重定向方式。
4.根據權利要求1所述的HTTP應用程序接口調用方法,其特征在于,由所述API調度分發系統作為代理服務器向所述客戶端提供所請求的結果的步驟包括: 根據所述API調用請求屬性向目標開放平臺發送代理請求; 所述目標開放平臺向所述API調度分發系統返回請求結果; 所述API調度分發系統將請求結果轉發給所述客戶端。
5.根據權利要求1所述的HTTP應用程序接口調用方法,其特征在于,所述客戶端根據獲取的重定向信息直接從目標開放平臺獲取請求結果的步驟包括: 根據所述API調用請求屬性進行系統重定向,并將重定向信息發送至所述客戶端; 所述客戶端根據所述重定向信息直接向目標開放平臺發起所述API調用請求; 所述目標開放平臺將請求結果返回給所述客戶端。
6.一種HTTP應用程序接口調用裝置,其特征在于,包括: 調用分發機制確定單元,用于根據業務需求和系統性能需求確定各開放平臺中的應用程序接口 API的調用分發機制,所述調用分發機制包括代理方式和HTTP重定向方式; 調用請求接收單元,用于接收客戶端發起的API調用請求; 調用分發機制判斷單元,用于判斷所請求的API調用所采用的機制; 代理方式處理單元,用于在所請求的API采用代理方式調用的情況下,將所述HTTP應用程序接口調用裝置作為代理服務器向所述客戶端提供所請求的結果; 重定向方式處理單元,用于在所請求的API采用HTTP重定向方式調用的情況下,向所述客戶端反饋重定向信息,以使所述客戶端根據獲取的重定向信息直接從目標開放平臺獲取請求結果。
7.根據權利要求6所述的HTTP應用程序接口調用裝置,其特征在于,所述裝置還包括:API封裝單元,用于預先按照設定方式封裝各開放平臺中的API ; API注冊單元,用于將封裝后的各開放平臺中的API注冊到所述API調度分發系統。
8.根據權利要求6所述的HTTP應用程序接口調用裝置,其特征在于,所述調用分發機制確定單元根據對各開放平臺中的API的管控力度確定是否采用代理方式,并根據對各開放平臺中的API的調用效率的要求確定是否采用HTTP重定向方式。
9.根據權利要求6所述的HTTP應用程序接口調用裝置,其特征在于,所述代理方式處理單元包括: 代理請求發送子單元,用于根據所述API調用請求屬性向目標開放平臺發送代理請求; 請求結果接收子單元,用于接收所述目標開放平臺發送的請求結果; 請求結果發 送子單元,用于將請求結果轉發給所述客戶端。
【文檔編號】G06F9/44GK103699367SQ201210365760
【公開日】2014年4月2日 申請日期:2012年9月27日 優先權日:2012年9月27日
【發明者】王大中, 曹敏, 陸音, 張正風, 錢逸群 申請人:中國電信股份有限公司