使用 Lua 创建自定义插件
APISIX 的主要功能之一是其通过 插件 的可扩展性。除了各种现有插件外,APISIX 还允许你构建自定义插件以添加额外功能并使用自定义流程管理 API 流量。通常,你使用 Lua 编程语言来实现新插件。APISIX 分 阶段 处理请求,相关的插件逻辑在请求路由期间的每个阶段执行。
本指南将引导你完成为 APISIX 开发一个新的自定义 Lua 插件的示例过程。
前置条件
开发文件代理插件
在本节中,你将使用 Lua 为 APISIX 创建一个名为 file-proxy 的新自定义插件。此插件将用于通过 API 公开静态文件(YAML、JSON、JavaScript、CSS 或图像文件)并从指定的 URL 获取文件。
例如,API 用户可以通过指定的 URL http://127.0.0.1:9080/openapi.yaml 访问 openapi.yaml 文件。
创建 Lua 文件
为插件源代码创建一个名为 file-proxy.lua 的新 Lua 文件。
导入模块
为 file-proxy 插件导入必要的模块:
local core = require("apisix.core")
local io = require("io")
local ngx = ngx