解決的問題
想把 TTS、語音辨識、文案檢查這類 API 按月或按次出租給客戶,就需要驗證身分、依方案限流、計費扣點、擋惡意流量。若每支後端服務各寫一套,規則會分散又難以維護。
實作方向
- 01在 Kong Gateway 自寫 Lua 外掛 subscription-manager:驗 API Key、檢查訂閱狀態,再依方案做滑動視窗限次數與流量,超過就回 429。
- 02另寫 points-manager 外掛負責計點:每次呼叫在 Redis 原子扣點,餘額不足回 402,交易紀錄非同步寫回 PostgreSQL。
- 03加上自寫 WAF 外掛擋 SQL 注入、XSS、路徑穿越等攻擊,以及斷路器外掛保護後端服務。
- 04用 Next.js 做管理後台:方案、訂閱、客戶與金鑰、點數儲值、用量監控、WAF 規則與事件,全部在同一個介面完成。
當作 SaaS API 租用服務怎麼運作
後端服務本身不用改,只要接在 Kong 後面,就能變成可以按方案出租的 API。
- 上架 API:在後台新增 Service 與 Route,把後端服務接上 Gateway,再依服務類型分組,例如語音類、文案類。
- 設計方案:訂出免費、基礎、專業、企業等方案,各自設定次數、流量與月費;個別 API 可以覆蓋方案預設值,也能設定每次呼叫要扣幾點。
- 開通客戶:建立客戶並發 API Key,選擇訂閱方案與可用的服務類型;要按次計費的客戶就先儲值點數。
- 客戶呼叫:每個請求進 Gateway 會依序驗金鑰、過 WAF、查訂閱與配額、扣點數,全部通過才轉給後端;攻擊回 403、超額回 429、點數不足回 402。
- 營運管理:後台即時看每個訂閱的用量、交易紀錄與資安事件;可以幫客戶升降級、暫停訂閱或重設配額,也能請 AI 解讀流量與安全狀況。







