На самом деле мы используем веб-сервер Apache для размещения нашего REST-API.Скрипты написаны на Lua и отображаются с помощью mod-lua.
Например, фактический фрагмент из httpd.conf
:
[...]
LuaMapHandler /restapi/(v\d{3})/(\w+) /opt/http/htdocs/restscripts/$1/$2.lua
[...]
Таким образом, запрос GET https://xxx/restapi/v001/articles
сопоставляется со сценарием /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.
Пожалуйста, скажите мне, если вам нужна дополнительная информация.Спасибо