臺州網(wǎng)站建設(shè)需要多少錢(apix幣種介紹)apix幣最新消息,
作者:劉維,API7.ai 網(wǎng)關(guān)開發(fā)工程師摘要:本文介紹 API 貨幣化的概念,應(yīng)用場景和具體實踐。
什么是 API 貨幣化?想象一下,你成功開發(fā)并部署了一個服務(wù),可以搜集你所在城市所有超市的打折和優(yōu)惠信息現(xiàn)在,有開發(fā)者想使用你的服務(wù),需要你提供相應(yīng)的 API,他們將付費獲取你的授權(quán)服務(wù),然后通過你開發(fā)的 API 得到打折與優(yōu)惠信息。
像這樣通過 API 的方式將數(shù)據(jù)的使用轉(zhuǎn)化為金錢的模式,就叫做 API 貨幣化API 貨幣化是使 API 網(wǎng)絡(luò)服務(wù)獲得盈利的理想方式在決定采用 API 貨幣化的商業(yè)模式后,首先需要考慮的就是如何計費通常有兩種計費方式:。
1.按次收費2.服務(wù)訂閱不管采用哪種方式,都需要統(tǒng)計不同身份用戶調(diào)用 API 的數(shù)量,對超出一定數(shù)量的用戶要進行限流和限速操作所以,計費的關(guān)鍵點在于能否識別出用戶的身份大部分購買服務(wù)的用戶屬于企業(yè)員工該群體登錄企業(yè)賬號后,理應(yīng)能夠共享同一個計費賬號,所以能否識別出用戶所屬組織也同樣重要。
API 貨幣化有哪些應(yīng)用?現(xiàn)實生活中 API 貨幣化的應(yīng)用無處不在,例如最常見的驗證碼功能、云廠商提供的消息隊列與文字識別服務(wù)、安全廠家提供的 WAF (Web 應(yīng)用防火墻)與內(nèi)容過濾等服務(wù)這些服務(wù)模式的市場需求量十分龐大,以至于我們迫切需要一個合適的技術(shù)棧來為 API 貨幣化打下堅實的基礎(chǔ),也就是說我們需要對 API 進行精細(xì)化管理。
在管理 API 時,我們需要控制不同身份的用戶在不同場景下的發(fā)布權(quán)限,并且要確保發(fā)布這些 API 符合組織標(biāo)準(zhǔn),諸如 URL 模式、命名約定、訪問控制規(guī)則等不同職能的部門對 API 的管理手段也不盡相同,通常包括對已發(fā)布的 API 進行更新或設(shè)計改進;執(zhí)行流量控制、速率限制和安全策略等;實時觀測 API 使用情況、性能及其他指標(biāo)。
用來管理并解決使用 API 過程中的各種問題的工具,就叫做 API 網(wǎng)關(guān)作為中央代理,API 網(wǎng)關(guān)將所有從客戶端傳入的請求路由到預(yù)定的目的地(后端服務(wù)),使 API 更安全、更易于管理API 網(wǎng)關(guān)通常支持各種授權(quán)和認(rèn)證協(xié)議,能夠?qū)?API 進行復(fù)雜的權(quán)限控制,還有速率限制等諸多功能。
目前市面上有許多流行的 API 網(wǎng)關(guān)開源項目,其中較引人注目、且廣泛應(yīng)用的就是 Apache APISIX(云原生微服務(wù)網(wǎng)關(guān))和其替代的企業(yè) SaaS 解決方案 API7 Cloud (https://www.apiseven.com/)。
APISIX 的 API 貨幣化實踐Apache APISIX 不僅支持上述的各種功能,通過其豐富的插件,還支持與 Prometheus、OpenTelemetry、Apache Skywalking 等多種可觀察性平臺進行集成,以進一步增強其分析 API 的能力并獲得完整的可視性。
針對上文提到的識別用戶身份,Apache APISIX 提出了 Consumer(消費者)的概念不同 Consumer 對應(yīng)不同的用戶,通過在 Consumer 上綁定對應(yīng)的插件和上游,不同的 Consumer 請求同一個 API。
經(jīng)用戶認(rèn)證體系識別后,網(wǎng)關(guān)服務(wù)根據(jù)當(dāng)前請求用戶的信息,自動匹配不同的 Plugin 或 Upstream 配置,此舉為差異化用戶管理提供了極大的便利
針對前文提到的同一企業(yè)多個不同職能的用戶,僅支持 Consumer 還不足以滿足需求當(dāng)多個 Consumer 共享同一個消費額度,若只管理每個 Consumer 的配置,操作就會過于繁瑣因此 APISIX 提出了 Consumer Group 的概念,有了 Consumer Group,多個 Consumer 就能共享同一套配置和同一個消費配額。
以上是 Apache APISIX 在 API 貨幣化上的實踐思路,下面我們來看看具體的應(yīng)用與配置以下示例可為企業(yè)配置限流限速,讓企業(yè)的用戶共享同一配置# create consumer groupcurl http://127.0.0.1:9180/apisix/admin/consumer_groups/company_a -H X-API-KEY: edd1c9f034335f136f87ad84b625c8f1 -X PUT -d
"plugins": {"limit-count": {"count": 200,"time_window": 60,"rejected_code": 503,"group": "$consumer_group_id"
# create consumer 1curl http://127.0.0.1:9180/apisix/admin/consumers -H X-API-KEY: edd1c9f034335f136f87ad84b625c8f1 -X PUT -d
"username": "jack","plugins": {"key-auth": {"key": "auth-one"},"group_id": "company_a"# create consumer 2
curl http://127.0.0.1:9180/apisix/admin/consumers -H X-API-KEY: edd1c9f034335f136f87ad84b625c8f1 -X PUT -d
"username": "johnson","plugins": {"key-auth": {"key": "auth-two"},"group_id": "company_a"# create route
curl http://127.0.0.1:9180/apisix/admin/routes/1 -H X-API-KEY: edd1c9f034335f136f87ad84b625c8f1 -X PUT -d
"uri": "/get","plugins": {"key-auth": {}},"upstream": {"type": "roundrobin","nodes": {"httpbin.org": 1
# hit the routecurl -i http://127.0.0.1:9180/get -H apikey: auth-oneX-RateLimit-Limit: 200X-RateLimit-Remaining: 199
curl -i http://127.0.0.1:9180/get -H apikey: auth-twoX-RateLimit-Limit: 200X-RateLimit-Remaining: 198
# change count value to 2 requests per minutecurl http://127.0.0.1:9180/apisix/admin/consumer_groups/company_a -H X-API-KEY: edd1c9f034335f136f87ad84b625c8f1 -X PUT -d
"plugins": {"limit-count": {"count": 2,"time_window": 60,"rejected_code": 503,"group": "$consumer_group_id"
# hit the routecurl -i http://127.0.0.1:9180/get -H apikey: auth-twoX-RateLimit-Limit: 2X-RateLimit-Remaining: 1
curl -i http://127.0.0.1:9180/get -H apikey: auth-oneX-RateLimit-Limit: 2X-RateLimit-Remaining: 0# no count, HTTP 503
curl -i http://127.0.0.1:9180/get -H apikey: auth-oneHTTP/1.1 503 Service Temporarily Unavailable# after a minute, count recover
curl -i http://127.0.0.1:9180/get -H apikey: auth-oneX-RateLimit-Limit: 2X-RateLimit-Remaining: 1# create another route
curl http://127.0.0.1:9180/apisix/admin/routes/2 -H X-API-KEY: edd1c9f034335f136f87ad84b625c8f1 -X PUT -d
"uri": "/anything","plugins": {"key-auth": {}},"upstream": {"type": "roundrobin","nodes": {"httpbin.org": 1
# you could see both routes share the same countcurl -i http://127.0.0.1:9180/get -H apikey: auth-one
X-RateLimit-Limit: 2X-RateLimit-Remaining: 1curl -i http://127.0.0.1:9180/anything -H apikey: auth-one
HTTP/1.1 503 Service Temporarily Unavailable總結(jié)不論是企業(yè)還是個人,想要通過 API 將數(shù)據(jù)與服務(wù)轉(zhuǎn)化為收入,實現(xiàn)貨幣化,都需要引入專業(yè)的管理工具 —— API 網(wǎng)關(guān)。
Apache APISIX 作為當(dāng)下最熱門的 API 網(wǎng)關(guān)之一,在貨幣化的道路上已經(jīng)有數(shù)百家企業(yè)的豐富實踐,提出的 “Consumer、Consumer Group” 等概念,極大地方便了用戶對 API 的管理,賦能企業(yè) API 貨幣化順暢落地。
OSCHINA 2022中國開源開發(fā)者問卷啟動你的反饋很重要!點擊下方小程序立即參與怎么理解開源世界里的白嫖?