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

企业插件

API7 网关提供了一套强大的先进插件套件,旨在增强 API 网关功能,满足广泛的使用案例。这些企业专用的插件为 流量管理 、数据转换、身份验证和安全性提供强大的工具,确保安全、高效和可扩展的 API 生态系统。通过利用这些插件,组织可以实现对 API 流量的精细控制、自定义网关响应并保护其 API 免受潜在威胁。

通过不断创新,API7 网关插件专为满足复杂的业务需求而量身定制。从实施先进的限流算法到自定义错误页面和转换网关响应,插件库使企业能够优化 API 性能、增强安全性并改善整体用户体验。你可以使用 API7 网关免费试用版开始探索企业插件。

企业插件

以下是 API7 网关专用插件的分类列表,该列表仍在不断扩充。访问 插件中心 查看所有可用的插件。

API7 网关企业插件的可视化目录,分为五类:流量管理、转换、认证、安全、通用;以下各节列出了完整列表

流量管理

  • graphql-limit-count:根据 GraphQL 查询或突变的深度限制 GraphQL 请求的速率。
  • graphql-proxy-cache:提供缓存 GraphQL 查询响应的功能。
  • oas-validator:根据定义的开放 API 模式验证请求或响应。
  • proxy-buffering:动态禁用 NGINX proxy_buffering 指令以与 SSE(服务器发送事件)和其他发送流数据的上游服务配合使用。
  • traffic-label:根据用户定义的规则标记流量,并根据标签和相关操作权重采取操作。
  • limit-count-advanced:除了固定窗口算法之外,还提供滑动窗口算法来限制请求速率。

转型

  • exit-transformer:支持根据从 API7 网关插件返回的状态码、标头和正文定制网关响应。
  • soap:提供了一种在 RESTful HTTP 请求和 SOAP 请求及其相应响应之间进行转换的便捷方法。

身份验证

  • saml-auth:使 API7 网关充当服务提供商 (SP),并通过与身份提供商 (IdP) 交互,通过 SAML 2.0 对用户进行身份验证。

安全

  • acl:通过验证发起请求的用户是否在访问控制列表中,允许或拒绝对上游资源的请求访问。
  • chaitin-waf:将流量转发到长亭 SafeLine Web 应用程序防火墙服务进行检查,提供针对 SQL 注入和跨站点脚本等常见 Web 攻击的保护。
  • data-mask:提供删除或替换请求标头、请求正文和 URL 查询中的敏感信息的功能。

一般

  • error-page:允许自定义 API7 网关遇到异常时提供的错误页面。

用例

以下是使用企业插件的一些用例。有关更多信息,请参阅 插件文档

编辑敏感信息

在将请求转发到上游服务之前,使用 data-mask插件删除或替换请求正文中的敏感信息。例如,将用户输入转发到 LLM上游服务时,输入提示中可能会包含社会保险号、生日或其他机密详细信息等敏感数据。通过 data-mask插件,网关可以在此类信息到达上游服务之前自动检测和屏蔽此类信息。这可确保遵守隐私法规、降低数据泄露风险并维护用户信任。

禁用 SSE 的代理缓冲

与服务器发送事件上游服务集成时,实时数据传输对于实时通知、股票更新或聊天系统等应用程序至关重要。默认情况下,NGINX 的 proxy_buffering 指令可能会引入延迟,因为它会在将数据转发到客户端之前缓冲数据。 proxy-buffering插件允许在运行时动态禁用该指令,确保 SSE上游服务将数据流式传输到客户端,而不会出现不必要的延迟。

自定义错误页面

error-page 插件允许在 API7 网关抛出 404500502503 错误时自定义错误页面。例如,当 API7 网关遇到异常(例如上游服务不可用或网关超时)时,网关可以返回自定义错误页面,该页面与应用程序的品牌一致或向用户提供可操作的步骤。您可以为支持的错误代码配置不同的错误页面。定制的错误页面有助于确保一致且专业的用户体验。

应用带滑动窗口的限流

limit-count-advanced 插件构建在 limit-count 插件之上,并在限流时支持滑动窗口算法。滑动窗口算法跟踪重叠间隔中的请求,通过计算最后配置时间段内的最近请求来平滑限流,无论间隔何时开始。此方法可以减少流量峰值,并且可以更有效地随时间均匀分配请求。例如,在处理大流量闪购的电商 API 中,使用滑动窗口算法可以确保请求的平滑分发,防止突然的流量高峰压垮系统。

实施访问控制列表

acl插件通过验证发起请求的用户是否在访问控制列表中来管理对上游资源的请求。用户身份可以从消费者标签中获取,也可以从第三方身份提供商(例如Keycloak)获取用户信息。例如,在多租户 SaaS 平台中,API 网关可以使用 ACL 来验证尝试访问特定端点的用户或服务是否已获得授权。通过根据预定义的访问控制列表允许或拒绝请求,插件可确保只有获得许可的租户或团队才能访问其指定的 API。这种在网关级别的集中实施增强了安全性,简化了管理,并降低了整个 API 生态系统中未经授权访问的风险。