跳到主要内容
版本:3.10.x

自定义插件

当现有插件无法完全满足特定需求时,可以使用自定义插件扩展 API 网关。例如,自定义插件可以让 API 网关连接专有系统、旧有基础设施或非标准协议,并针对特定业务需求实现定制功能。

自定义插件会执行用户编写的代码,因此存在固有的安全风险。由于插件直接在网关运行时中执行,部署前应仔细审查插件代码,并在非生产环境中验证其行为。

要在 API7 网关中使用自定义插件,请把插件文件上传到某个网关组,为组织选择合适的目录,填写插件用途、作者等信息,并可选择上传徽标。插件名称在网关组内必须保持唯一,以免发生冲突。上传后,该网关组的路由、服务和消费者都可以引用它。

自定义插件属于上传到的那个网关组,因此每个网关组运行的都是各自收到的代码。把新版本上传到预发布网关组时,生产网关组仍然运行原有版本,从而可以在插件到达生产环境之前先在另一个环境中验证,既不需要改插件名,也不需要改动引用它的资源。自 API7 企业版 3.10.6 起可用。

API7 网关控制台中 Add Custom Plugin(添加自定义插件)表单的屏幕截图,用户在其中上传 Lua 插件文件并在将其发布到网关组之前提供元数据

主要特性

  • 仅支持使用 Lua 开发自定义插件,以便与 API7 网关核心保持一致,同时维持轻量、高性能的运行特性。
  • 与内置插件一样,自定义插件可以直接应用于路由或服务,实现灵活、精准的 API 流量管理。
  • 自定义插件的作用范围是网关组,每个环境运行各自上传的版本,新版本只有在上传到生产网关组后才会生效。
  • 自定义插件属于高权限网关扩展,应按照其他运行时代码的标准进行严格审查。

用例

与传统或非标准协议集成

当企业需要将 API 网关与内部系统或旧有应用集成时,可能需要开发适配自身系统的插件。自定义插件可以帮助组织在采用现代 API 管理实践的同时,保持与现有基础设施的兼容性。

许多旧有系统依赖现代 API 管理工具本身不支持的专有协议或数据格式。此外,标准插件在处理非标准协议或数据格式时可能无法完全满足要求。为了弥补这一差距,可以开发自定义插件来处理特殊业务需求。

例如,自定义插件可以在专有格式和行业标准格式之间执行数据转换。这确保了 API 网关可以有效地管理传统或非标准协议服务与新协议服务之间的请求和响应。

扩展专用功能

自定义插件可以针对组织的特定需求扩展 API 网关,尤其适用于内置功能无法覆盖的复杂场景。

通过自定义插件扩展 API 网关,企业既能保留现有基础设施,也能逐步推进系统现代化。这种方式可以帮助企业适应不断变化的技术需求,保持长期的可扩展性和灵活性。

平衡灵活性和安全性

在 API7 网关中,自定义插件与其他网关插件共享相同的运行时上下文,因此能够灵活扩展网关行为;与此同时,自定义插件代码必须可信,并在发布前经过审查和测试。

为降低风险,应限制自定义插件的上传和修改权限,在测试环境中验证插件行为,并在部署到生产环境前遵循组织的代码审查和发布流程。