统一认证、限流、Mock 一网打尽!用 APISIX/Kong 让低代码平台更清爽

统一认证、限流、Mock 一网打尽!用 APISIX/Kong 让低代码平台更清爽_第1张图片

网罗开发 (小红书、快手、视频号同名)

  大家好,我是 展菲,目前在上市企业从事人工智能项目研发管理工作,平时热衷于分享各种编程领域的软硬技能知识以及前沿技术,包括iOS、前端、Harmony OS、Java、Python等方向。在移动端开发、鸿蒙开发、物联网、嵌入式、云原生、开源等领域有深厚造诣。

图书作者:《ESP32-C3 物联网工程开发实战》
图书作者:《SwiftUI 入门,进阶与实战》
超级个体:COC上海社区主理人
特约讲师:大学讲师,谷歌亚马逊分享嘉宾
科技博主:华为HDE/HDG

我的博客内容涵盖广泛,主要分享技术教程、Bug解决方案、开发工具使用、前沿科技资讯、产品评测与使用体验。我特别关注云服务产品评测、AI 产品对比、开发板性能测试以及技术报告,同时也会提供产品优缺点分析、横向对比,并分享技术沙龙与行业大会的参会体验。我的目标是为读者提供有深度、有实用价值的技术洞察与分析。

展菲:您的前沿技术领航员
大家好,我是展菲!
全网搜索“展菲”,即可纵览我在各大平台的知识足迹。
公众号“Swift社区”,每周定时推送干货满满的技术长文,从新兴框架的剖析到运维实战的复盘,助您技术进阶之路畅通无阻。
微信端添加好友“fzhanfei”,与我直接交流,不管是项目瓶颈的求助,还是行业趋势的探讨,随时畅所欲言。
最新动态:2025 年 3 月 17 日
快来加入技术社区,一起挖掘技术的无限潜能,携手迈向数字化新征程!


文章目录

    • 摘要
    • 引言
    • API Gateway 统一集成架构解析
      • 网关的核心作用
      • 架构图示(简略):
    • 实战:用 APISIX + Kong 管理外部接口
      • APISIX 外部 API 接入实战
        • 安装 APISIX(Docker 简版)
        • 注册外部 API(以 ERP 查询为例)
        • 请求验证(用浏览器打开)
      • Kong 实现统一注册和 Key 鉴权
        • 安装(Docker)
        • 注册服务与路由
        • 启用 API Key 鉴权插件
        • 请求方式
    • 低代码平台接入场景与代码示例
      • 场景一:供应链库存查询
      • 场景二:AI 文本生成服务(Mock + 限流)
      • 场景三:金融接口(OAuth 鉴权)
    • QA 环节
    • 总结

摘要

在企业级低代码平台中,页面组件频繁调用外部接口是常态。如果每个页面都自行集成 API,很快就会出现接口冗余、权限不统一、安全不可控等问题。更可怕的是,一旦第三方 API 更新,平台维护成本急剧上升。

本篇文章将带你从“裸连外部 API”迈向“网关式统一接入”,通过 API Gateway 实现一处注册、全局调用,同时支持认证鉴权、限流熔断、缓存加速等功能。我们会以 Kong 与 APISIX 两个开源 API 网关为例,结合一个低代码平台外部服务统一接入场景,提供完整落地方案与实战代码。

引言

低代码平台的核心目标是“让业务方自己拖拖拽拽就能完成系统搭建”。但随着平台开放性越来越强,“如何接入外部数据源” 成为关键难题。

举个典型场景:

业务同事希望通过拖拽一个组件,实现“查询供应商库存”的功能,但这个库存服务来自外部 ERP 系统。现在每个页面自己连 ERP,一旦接口改动、身份过期、限流失控,全平台崩了。

这个问题不光是“调用麻烦”,更是平台工程治理的问题

  • 谁来统一配置认证?
  • 如何做访问控制与限流?
  • 如何避免重复写 API 封装逻辑?
  • 多个页面重复请求,能不能统一缓存?

这些,正是 API Gateway 擅长的领域。

API Gateway 统一集成架构解析

网关的核心作用

  • 统一注册:所有外部 API 只需注册一次,前端页面组件调用统一地址。
  • 统一鉴权:可配置 OAuth、JWT、Key 校验,无需前端处理 token。
  • 限流熔断:按 IP、用户、接口级别配置 QPS 上限。
  • 缓存提升性能:频繁查询的接口自动缓存(APISIX 内建支持)。
  • Mock 支持:开发联调时,API 不可用也能跑通页面。

架构图示(简略):

┌────────────┐
│  低代码平台  │
└─────┬──────┘
      │
      ▼
┌───────────────┐
│  API Gateway   │(Kong / APISIX)
│  - 认证       │
│  - 限流       │
│  - 路由       │
│  - Mock 缓存   │
└─────┬─────────┘
      ▼
┌─────────────────────┐
│ 外部服务(ERP/CRM/AI)│
└─────────────────────┘

实战:用 APISIX + Kong 管理外部接口

我们分别用 Kong 与 APISIX 做一次完整 Demo。

APISIX 外部 API 接入实战

安装 APISIX(Docker 简版)
git clone https://github.com/apache/apisix-docker.git
cd apisix-docker/example
docker-compose -f docker-compose.yml up -d
注册外部 API(以 ERP 查询为例)
# 通过 admin API 创建一个上游
curl http://localhost:9180/apisix/admin/upstreams/1 -X PUT -d '
{
  "type": "roundrobin",
  "nodes": {
    "httpbin.org:80": 1
  }
}'

# 创建 route 路由
curl http://localhost:9180/apisix/admin/routes/erp-api -X PUT -d '
{
  "uri": "/erp/query",
  "upstream_id": "1",
  "plugins": {
    "limit-count": {
      "count": 10,
      "time_window": 60,
      "rejected_code": 429,
      "key": "remote_addr"
    },
    "proxy-rewrite": {
      "uri": "/get"
    }
  }
}'
请求验证(用浏览器打开)
curl http://localhost:9080/erp/query

这样前端页面组件只需配置 /erp/query,不需要知道真实 ERP 地址、认证逻辑、限流策略,全部交给网关处理。

Kong 实现统一注册和 Key 鉴权

安装(Docker)
docker network create kong-net
docker run -d --name kong-database \
  --network=kong-net \
  -p 5432:5432 \
  -e "POSTGRES_USER=kong" \
  -e "POSTGRES_DB=kong" \
  postgres:13

docker run -d --name kong \
  --network=kong-net \
  -e "KONG_DATABASE=postgres" \
  -e "KONG_PG_HOST=kong-database" \
  -e "KONG_ADMIN_LISTEN=0.0.0.0:8001" \
  -p 8000:8000 \
  -p 8001:8001 \
  kong:latest
注册服务与路由
curl -i -X POST http://localhost:8001/services/ -d "name=erp-api" -d "url=http://httpbin.org"
curl -i -X POST http://localhost:8001/services/erp-api/routes -d "paths[]=/erp"
启用 API Key 鉴权插件
curl -i -X POST http://localhost:8001/services/erp-api/plugins \
    --data "name=key-auth"

# 创建消费者
curl -i -X POST http://localhost:8001/consumers/ -d "username=frontend"

# 创建密钥
curl -i -X POST http://localhost:8001/consumers/frontend/key-auth \
    -d "key=lowcode-demo-key"
请求方式
curl --header "apikey: lowcode-demo-key" http://localhost:8000/erp/get

页面组件统一通过 Kong 代理调用 /erp/get,后端透明代理 + 鉴权完成。

低代码平台接入场景与代码示例

场景一:供应链库存查询

  • 请求路径:/api/erp/inventory
  • 缓存时间:10s
  • 调用方式:
// 页面组件统一调用 API Gateway 暴露的接口
fetch('/api/erp/inventory', {
  headers: { 'apikey': 'lowcode-demo-key' }
}).then(res => res.json()).then(showTable)

场景二:AI 文本生成服务(Mock + 限流)

  • 后端服务不稳定时,使用 APISIX Mock 插件保证页面不崩。
  • 接口路径:/api/ai/summary
  • 低代码组件只需调用 /api/ai/summary,由网关返回固定响应或真实接口结果。

场景三:金融接口(OAuth 鉴权)

  • 金融服务通常要求严格鉴权,使用 Kong 的 OAuth2 插件完成授权流程。
  • 页面组件无需处理 token 刷新逻辑,网关统一封装。

QA 环节

Q:API Gateway 是否适合所有低代码平台?

A:适用于中型以上平台或面向外部客户的场景。对小型纯内部系统可以通过轻量封装解决。

Q:低代码平台组件调用是否需要感知鉴权逻辑?

A:不需要。由平台统一封装 fetch/httpClient,由 API Gateway 代理鉴权,组件只感知统一接口路径。

Q:如何处理网关挂掉的问题?

A:建议部署多实例,配合 Nginx/Ingress 做负载均衡。APISIX 和 Kong 都支持高可用部署模式。

总结

API Gateway 不仅能帮低代码平台整合外部 API,更能统一认证、限流、缓存等策略,成为平台底座关键一环。

我们通过 APISIX 和 Kong 分别实现了:

  • 外部服务注册与统一调用
  • 限流、防刷与缓存策略配置
  • Mock 支持保障联调稳定性
  • 前端组件低侵入式接入

你可能感兴趣的:(实战源码,前端,kong,低代码)