回到系統作品

Kong API 訂閱與租用平台

把自家 API 包成 SaaS 服務出租:客戶拿 API Key 訂方案,Kong Gateway 依方案限次數、限流量、扣點數,後台一站管理方案、客戶、用量與資安。

作品畫面

方案管理:免費、基礎、專業、企業四種方案,各自設定每秒/分/時/日的呼叫次數、每日與每月流量上限和月費。
方案管理:免費、基礎、專業、企業四種方案,各自設定每秒/分/時/日的呼叫次數、每日與每月流量上限和月費。點擊圖片可查看原尺寸
方案的 API 存取設定:同一個方案可以對每支 API 另外設次數、流量與每次扣幾點,高成本的 API 可以比一般 API 限得更緊。
方案的 API 存取設定:同一個方案可以對每支 API 另外設次數、流量與每次扣幾點,高成本的 API 可以比一般 API 限得更緊。點擊圖片可查看原尺寸
訂閱列表:每位客戶訂了哪個方案、能用哪類服務、目前狀態與剩餘點數,一頁看完。
訂閱列表:每位客戶訂了哪個方案、能用哪類服務、目前狀態與剩餘點數,一頁看完。點擊圖片可查看原尺寸
用量詳情:某個訂閱每小時/每日/每月用了多少次、多少流量,以及 Gateway 在 Redis 裡追蹤的滑動視窗計數器。
用量詳情:某個訂閱每小時/每日/每月用了多少次、多少流量,以及 Gateway 在 Redis 裡追蹤的滑動視窗計數器。點擊圖片可查看原尺寸
WAF 總覽:今日攔截、偵測與記錄筆數,24 小時與 7 天趨勢,也可以請 AI 產生安全摘要。
WAF 總覽:今日攔截、偵測與記錄筆數,24 小時與 7 天趨勢,也可以請 AI 產生安全摘要。點擊圖片可查看原尺寸
安全事件:被擋下的路徑穿越、XSS、指令注入等請求,記錄來源 IP、規則編號與嚴重度。
安全事件:被擋下的路徑穿越、XSS、指令注入等請求,記錄來源 IP、規則編號與嚴重度。點擊圖片可查看原尺寸
Subscription Manager 外掛設定:Redis 連線、滑動或固定視窗、多條件組合限流的 Template Key,存檔後直接套用到 Kong。
Subscription Manager 外掛設定:Redis 連線、滑動或固定視窗、多條件組合限流的 Template Key,存檔後直接套用到 Kong。點擊圖片可查看原尺寸

解決的問題

想把 TTS、語音辨識、文案檢查這類 API 按月或按次出租給客戶,就需要驗證身分、依方案限流、計費扣點、擋惡意流量。若每支後端服務各寫一套,規則會分散又難以維護。

實作方向

  1. 01在 Kong Gateway 自寫 Lua 外掛 subscription-manager:驗 API Key、檢查訂閱狀態,再依方案做滑動視窗限次數與流量,超過就回 429。
  2. 02另寫 points-manager 外掛負責計點:每次呼叫在 Redis 原子扣點,餘額不足回 402,交易紀錄非同步寫回 PostgreSQL。
  3. 03加上自寫 WAF 外掛擋 SQL 注入、XSS、路徑穿越等攻擊,以及斷路器外掛保護後端服務。
  4. 04用 Next.js 做管理後台:方案、訂閱、客戶與金鑰、點數儲值、用量監控、WAF 規則與事件,全部在同一個介面完成。

當作 SaaS API 租用服務怎麼運作

後端服務本身不用改,只要接在 Kong 後面,就能變成可以按方案出租的 API。

  • 上架 API:在後台新增 Service 與 Route,把後端服務接上 Gateway,再依服務類型分組,例如語音類、文案類。
  • 設計方案:訂出免費、基礎、專業、企業等方案,各自設定次數、流量與月費;個別 API 可以覆蓋方案預設值,也能設定每次呼叫要扣幾點。
  • 開通客戶:建立客戶並發 API Key,選擇訂閱方案與可用的服務類型;要按次計費的客戶就先儲值點數。
  • 客戶呼叫:每個請求進 Gateway 會依序驗金鑰、過 WAF、查訂閱與配額、扣點數,全部通過才轉給後端;攻擊回 403、超額回 429、點數不足回 402。
  • 營運管理:後台即時看每個訂閱的用量、交易紀錄與資安事件;可以幫客戶升降級、暫停訂閱或重設配額,也能請 AI 解讀流量與安全狀況。