apis-prd / app.lua
geqintan's picture
update
f23aede
-- 这是一个单行注释
--[[
这是一个多行注释
这是一个多行注释
]]
local uri = ngx.var.uri
local api_version = ''
local api_pxoxy_pass_url_indicator = ''
-- 提取版本号和 proxy_pass url 标识
if uri == '/' then -- uri为 / ,退出运行
ngx.exit(ngx.HTTP_OK)
end
local api_version, api_pxoxy_pass_url_indicator = uri:match("/?([^/]+)/?(.*)")
ngx.say("api_version: ", api_version)
ngx.say("api_pxoxy_pass_url_indicator: ", api_pxoxy_pass_url_indicator)
pass_url = api_pxoxy_pass_url_indicator
-- local upstream_dict = ngx.shared.upstream_dict
-- upstream_dict:set("upstream", pass_url)
pass_url = pass_url:gsub("http/", "http://")
pass_url = pass_url:gsub("https/", "https://")
ngx.say("pass_url: ", pass_url)
-- 根据版本号加载不同的 Lua 文件
-- local lua_path = "app_" .. api_version
-- ngx.say("lua_path: ", lua_path)
-- require(lua_path)
local lua_path = "app/" ..api_version .. "/app"
ngx.say("lua_path: ", lua_path)
module = require("app/" .. api_version .. "/app") --require 是没问题的
-- 检查模块是否加载成功
if type(module) ~= "table" then
ngx.say("Error: Failed to load module")
ngx.exit(ngx.HTTP_INTERNAL_SERVER_ERROR)
end
-- 调用模块中的函数
module.some_function() -- 调用 some_function
module.another_function() -- 调用 another_function
ngx.say("module.a: ", module.a)