API網(wǎng)關(guān)是提供服務(wù)開放和共享的企業(yè)級PaaS平臺,提供發(fā)布管理、統(tǒng)一認(rèn)證鑒權(quán)、流控、協(xié)議轉(zhuǎn)換、服務(wù)審計(jì)等功能,幫助用戶實(shí)現(xiàn)內(nèi)部多系統(tǒng)間,或者內(nèi)部系統(tǒng)與外部系統(tǒng)之間實(shí)現(xiàn)跨系統(tǒng)、跨協(xié)議的服務(wù)能力互通。
為什么需要API接口開發(fā)?
隨著微服務(wù)架構(gòu)的流行,API網(wǎng)關(guān)也越來越受歡迎。在微服務(wù)體系架構(gòu)中,將應(yīng)用程序劃分為幾個(gè)低耦合的服務(wù)(稱為微服務(wù)),每個(gè)服務(wù)都有其獨(dú)特的功能。盡管微服務(wù)提供了許多好處(最顯著的是使它更易于開發(fā),部署和維護(hù)應(yīng)用程序的不同部分),但它們卻使客戶難以快速,安全地訪問他們所需的信息。
API網(wǎng)關(guān)接口開發(fā)可以充當(dāng)使用這些微服務(wù)的客戶端的中央接口,從而解決其中的一些問題。客戶端不必訪問數(shù)十個(gè)單獨(dú)的服務(wù),而是可以向API網(wǎng)關(guān)發(fā)送單個(gè)請求,而API網(wǎng)關(guān)本身將聚集微服務(wù)。API網(wǎng)關(guān)的主要功能稱為路由,但是使用API網(wǎng)關(guān)的原因還有很多。
對于服務(wù)數(shù)量眾多、復(fù)雜度比較高、規(guī)模比較大的業(yè)務(wù)來說,引入API數(shù)據(jù)接口平臺也有一系列的好處:
● 聚合接口使得服務(wù)對調(diào)用者透明,客戶端與后端的耦合度降低
● 聚合后臺服務(wù),節(jié)省流量,提高性能,提升用戶體驗(yàn)
● 提供安全、流控、過濾、緩存、計(jì)費(fèi)、監(jiān)控等API管理功能
在【數(shù)商云】與客戶合作的技術(shù)實(shí)踐中,客戶往往需要通過統(tǒng)一的API接口平臺進(jìn)行服務(wù)能力的共享,提供發(fā)布、管理、保護(hù)和監(jiān)控接口API的能力,實(shí)現(xiàn)跨系統(tǒng)、跨協(xié)議的服務(wù)能力互通。
API接口平臺如何幫助企業(yè)開放和共享服務(wù)?
企業(yè)數(shù)字化轉(zhuǎn)型過程中,如何實(shí)現(xiàn)多系統(tǒng)間的共享和集成,如何開放企業(yè)能力構(gòu)建API接口開發(fā)生態(tài)系統(tǒng),對服務(wù)管理提出了新的挑戰(zhàn)。
》》》缺少有效應(yīng)對突發(fā)流量的手段
痛點(diǎn)描述
傳統(tǒng)方式通過控制入口流量,無法解決個(gè)別服務(wù)在大壓力下無法正常響應(yīng),異??焖賯鬟f到關(guān)聯(lián)服務(wù),最終導(dǎo)致整個(gè)系統(tǒng)的雪崩。
方案描述
API接口管理平臺提供的服務(wù)治理功能,可以有效應(yīng)對電商大促、突發(fā)事件等場景下關(guān)鍵服務(wù)正常運(yùn)行,降低系統(tǒng)性風(fēng)險(xiǎn)發(fā)生概率。
》》》數(shù)商云開發(fā)API接口平臺通用功能
痛點(diǎn)描述
用戶管理、認(rèn)證鑒權(quán)作為應(yīng)用通用功能,多個(gè)應(yīng)用均需要重復(fù)開發(fā)和部署,增加了開發(fā)成本,降低了開發(fā)效率。
方案描述
API網(wǎng)關(guān)提供統(tǒng)一認(rèn)證鑒權(quán)機(jī)制,開發(fā)人員無需重復(fù)實(shí)現(xiàn)認(rèn)證鑒權(quán)等通用功能,只需專注于業(yè)務(wù)開發(fā)。
》》》非REST標(biāo)準(zhǔn)接口開放困難
痛點(diǎn)描述
傳統(tǒng)基于WebService/gRPC等標(biāo)準(zhǔn)開發(fā)的應(yīng)用,需要修改才能以REST接口形式對外暴露服務(wù)。
方案描述
數(shù)據(jù)服務(wù)API網(wǎng)關(guān)提供協(xié)議轉(zhuǎn)化功能,支持將WebService、gRPC等接口以REST接口形式對外開放,用戶無需適配開發(fā)。
》》》缺少API接口灰度發(fā)布機(jī)制
痛點(diǎn)描述
服務(wù)發(fā)布后,隨著業(yè)務(wù)發(fā)展需要發(fā)布新的版本,如何管理多個(gè)版本,如何進(jìn)行灰度測試,缺少灰度發(fā)布機(jī)制將嚴(yán)重影響管理效率。
方案描述
API接口網(wǎng)關(guān)支持服務(wù)多個(gè)版本發(fā)布,支持配置各版本流量百分比、根據(jù)請求參數(shù)路由請求到不同的版本,以滿足不同的灰度版本要求。
企業(yè)API接口平臺適用熱門場景
》》》對外能力開放
將企業(yè)內(nèi)部服務(wù)能力以標(biāo)準(zhǔn)API的形式開放給外部合作伙伴或第三方,與外部用戶可管可控地共享服務(wù)、能力和數(shù)據(jù),達(dá)成深度合作,共建新生態(tài)。
》》》內(nèi)部業(yè)務(wù)集成
規(guī)范系統(tǒng)間API數(shù)據(jù)接口,快速完成企業(yè)內(nèi)部系統(tǒng)的解耦及前后端分離,實(shí)現(xiàn)可觀可控的相互訪問。
》》》交付標(biāo)準(zhǔn)化
實(shí)現(xiàn)軟件交付的標(biāo)準(zhǔn)化,促進(jìn)交付質(zhì)量,以及確保軟件可迭代。
數(shù)商云API數(shù)據(jù)接口核心功能
▲ API全生命周期管理
支持包括API發(fā)布、API下線、API版本管理等生命周期管理功能
▲ 統(tǒng)一認(rèn)證鑒權(quán)
支持AK/SK、JWT等認(rèn)證方式,提供網(wǎng)關(guān)、服務(wù)和API等對象的鑒權(quán)管理功能
▲ 服務(wù)治理
支持超時(shí)重試、流控、降級和熔斷等功能,同時(shí)提供網(wǎng)關(guān)的維護(hù)開關(guān)功能
▲ 服務(wù)路由
支持根據(jù)請求方法、Header、QueryString動(dòng)態(tài)路由,以及負(fù)載均衡和版本分流
▲ 安全防護(hù)
支持IP黑白名單,支持CORS和JSONP跨域訪問標(biāo)準(zhǔn)
▲ 協(xié)議轉(zhuǎn)換
支持gRPC、DubboRPC、WebService接口轉(zhuǎn)為REST對外開放
▲ 數(shù)據(jù)轉(zhuǎn)換
支持請求Header、QueryString轉(zhuǎn)換,以及請求Path重寫
▲ 運(yùn)維監(jiān)控
支持查看服務(wù)或接口調(diào)用記錄和調(diào)用統(tǒng)計(jì),支持自定義配置告警規(guī)則
▲ 知識庫
支持通過知識庫自動(dòng)創(chuàng)建API,統(tǒng)一接口定義,實(shí)現(xiàn)接口的標(biāo)準(zhǔn)化
API網(wǎng)關(guān)接口還可以做什么?
API網(wǎng)關(guān)接口平臺不僅可以通過路由分發(fā)客戶的請求,還可以在API數(shù)據(jù)管理方面提供很多好處。作為將客戶端與服務(wù)連接起來的中央接口,API網(wǎng)關(guān)可以處理重要的安全和管理任務(wù),例如身份驗(yàn)證,輸入驗(yàn)證,指標(biāo)收集和響應(yīng)轉(zhuǎn)換。
▲ 身份驗(yàn)證:API網(wǎng)關(guān)可能用于驗(yàn)證API調(diào)用
這樣,即使客戶端需要從多個(gè)服務(wù)訪問數(shù)據(jù),他們也只需要在網(wǎng)關(guān)進(jìn)行一次身份驗(yàn)證即可。這樣可以減少延遲,并確保身份驗(yàn)證過程在整個(gè)應(yīng)用程序中保持一致。
▲ 輸入驗(yàn)證:API網(wǎng)關(guān)也可以用于執(zhí)行簡單的邏輯
對于輸入驗(yàn)證,這意味著確??蛻舻恼埱蟀斜匾男畔?,以正確的格式完成請求,然后再到達(dá)服務(wù),該服務(wù)最終將檢索請求的數(shù)據(jù)。
▲ 指標(biāo)集合:由于所有請求都是通過API網(wǎng)關(guān)傳遞的,因此它是收集分析數(shù)據(jù)的理想場所
API網(wǎng)關(guān)可以例如測量用戶發(fā)出的請求數(shù)量或正在中繼到特定微服務(wù)的請求數(shù)量。這也允許將API網(wǎng)關(guān)用于速率限制:如果用戶發(fā)送的請求太多,則網(wǎng)關(guān)可以拒絕它們,而不是將其傳遞給服務(wù)之一。
▲ 響應(yīng)轉(zhuǎn)換:通常,不同的設(shè)備和用戶需要訪問不同的信息
例如,移動(dòng)設(shè)備可能比臺式設(shè)備需要更少的數(shù)據(jù),而內(nèi)部客戶端可能需要比外部客戶端更多的信息。API網(wǎng)關(guān)可用于解決此問題,從而為每種客戶端類型有效地呈現(xiàn)唯一的API。
以Netflix API網(wǎng)關(guān)為例。
NetFlix,也就是眾所周知的網(wǎng)飛。
Netflix API網(wǎng)關(guān)是API網(wǎng)關(guān)最常被引用的例子之一。Netflix在2013年為API網(wǎng)關(guān)創(chuàng)建了第一個(gè)專用框架:Zuul。它處理了開發(fā)者期望的所有事情,從授權(quán)到路由再到分析,這為Netflix提供了我們上面討論的所有好處。
但是,所有對Zuul的調(diào)用都處于阻塞狀態(tài),這意味著服務(wù)器必須響應(yīng)客戶端的調(diào)用才能再次使用該線程。于是Netflix決定:他們需要一種所謂的異步解決方案,該方案中的調(diào)用是非阻塞的,即使服務(wù)器未響應(yīng)客戶端的調(diào)用,該線程仍可以使用。因此,Zuul2.0(一個(gè)開源網(wǎng)關(guān)框架)誕生了。
Netflix API網(wǎng)關(guān)的主要特征之一是它能夠處理來自1000多種設(shè)備類型的請求,然后根據(jù)客戶端所運(yùn)行的硬件和軟件向其提供正確的信息。
▲ 寫在最后:
API網(wǎng)關(guān)接口不過是的客戶端和服務(wù)之間的一層。隨著微服務(wù)體系結(jié)構(gòu)的興起,API網(wǎng)關(guān)日益普及,從API接口平臺管理的角度來看,API網(wǎng)關(guān)也仍然具有明顯的優(yōu)勢。
【 高速迭代、高可用高并發(fā)支持,現(xiàn)在申請即可提供免費(fèi)系統(tǒng)演示 】
<本文由數(shù)商云•云朵匠原創(chuàng),商業(yè)轉(zhuǎn)載請聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請標(biāo)明:數(shù)商云原創(chuàng)>
作者:云朵匠 | 數(shù)商云(微信ID:shushangyun_com)
【數(shù)商云m.zhimaihui.cn】致力于提供企業(yè)級的電商平臺服務(wù),長期為大中型企業(yè)打造數(shù)據(jù)化、商業(yè)化、智能化的網(wǎng)上商城系統(tǒng)解決方案,同時(shí)我們還提供B2B電子商務(wù)平臺、B2B2C多用戶商城系統(tǒng)、B2C電子商務(wù)系統(tǒng)、跨境進(jìn)口電商平臺、供應(yīng)鏈管理系統(tǒng)、新零售電商平臺、直播電商系統(tǒng)等一系列系統(tǒng)定制開發(fā)服務(wù)。
評論