实际上,我们正在使用 Apache 网络服务器来托管我们的 REST-API。脚本是用 Lua 编写的,并使用 mod-lua 映射。
例如,来自的实际片段httpd.conf
:
[...]
LuaMapHandler /restapi/(v\d{3})/(\w+) /opt/http/htdocs/restscripts/$1/$2.lua
[...]
所以 RequestGET https://xxx/restapi/v001/articles
被映射到 script /opt/http/htdocs/restscripts/v001/articles.lua
。
好吧,我希望你能真正关注我。现在我们必须用模块扩展我们的 API,但请求 uri 必须相同。是否有机会确定模块名称并将其写入变量?
示例 - 脚本路径:
/opt/http/htdocs/restscripts/module1/v001/articles.lua
/opt/http/htdocs/restscripts/module2/v001/orders.lua
/opt/http/htdocs/restscripts/module2/v001/payments.lua
/opt/http/htdocs/restscripts/module3/v001/employees.lua
lua 脚本是独一无二的。
示例 - 请求:
GET https://xxx/restapi/v001/articles
GET https://xxx/restapi/v001/orders
GET https://xxx/restapi/v001/payments
GET https://xxx/restapi/v001/employees
httpd.conf 应该是这样的:
[...]
$MODULE=getModule
LuaMapHandler /restapi/(v\d{3})/(\w+) /opt/http/htdocs/restscripts/$MODULE/$1/$2.lua
[...]
我已经阅读了以下问题,但这些变量并不依赖于 uri。
请告诉我,如果您需要任何进一步的信息。谢谢