Как уже было сказано в августе, у вас есть возможность «многоразовых правил» с использованием правила обработки вызовов, но ИМХО это становится довольно запутанным, особенно если у вас много правил.
Обычно я выбираю один из двух вариантов, которые называю: «Служба многократного использования» или «Действие переключения» (и, да, я сам придумал эти названия, чтобы вы не нашел в документации DataPower) ...
«Служба многократного использования» - это то, что я реализовал для многих клиентов, и обычно я использую для нее брандмауэр XML в Loopback (но MPGW тоже будет работать). У вас может быть много разных функций, например регистрация, преобразование, проверка и т. д., а затем у вас есть «более простой» вызов URL-Open () для этой службы в каждом правиле. Вы можете заблокировать XMLFW, чтобы он слушал только 127.0.0.1 и, таким образом, изолировал его. Это все равно заставит вас добавить вызов к каждому правилу, но, возможно, вы можете добавить URL-Open () к существующему GWS или общему сценарию ...
Другой подход, который я использовал для шлюзов на основе "REST", - это кодирование "Switch Action". Затем вы устанавливаете меньше правил (или, может быть, даже одно), но я стараюсь иметь одно правило для каждого метода HTTP, а затем в первом действии я добавляю GWS, который (может регистрироваться через «Службу многократного использования») смотрит на URI (обычно) и / или Header и запустите Switch (), чтобы загрузить определенный модуль GWS. Каждый модуль GWS назван в соответствии с Switch (), поэтому его легко отслеживать, а «модули переключения» могут вызывать другие общие модули, в свою очередь, делая ваш код чище (и меньше). Преимущество этого, конечно, заключается в меньшем количестве правил и более эффективном коде, но вы теряете некоторый контроль (графически), но поскольку у вас есть модули, разделенные в соответствии с вашими предыдущими правилами, вы можете понять, просто взглянув на включенные файлы GWS. Если вы добавите один каталог GWS для каждой службы / метода / правила, у вас будет еще более простая задача по просмотру (или добавлению) кода.
local:///GWS/MyMPGWRestGW/index.js <-- This is your main script
local:///GWS/MyMPGWRestGW/POST/createSomething.js
local:///GWS/MyMPGWRestGW/POST/createSomethingElse.js
local:///GWS/MyMPGWRestGW/PUT/updateSomething.js
local:///GWS/MyMPGWRestGW/GET/fetchMeSomething.js
local:///GWS/MyMPGWRestGW/DELETE/deleteSomething.js
local:///GWS/MyMPGWRestGW/HEAD/echoSomething.js
Я надеюсь, что в скором времени в выпуске прошивки DataPower (уже есть открытая демонстрация) мы получим новую услугу под названием «API Gateway», которую можно будет использовать в подобных сценариях. У меня не так много информации, которой я мог бы поделиться, но если вы возьмете демонстрацию (установка Docker), вы сможете получить доступ к DataPower, в котором она запущена, и увидеть новую службу шлюза API в действии: https://github.com/ibm-apiconnect/apigateway-experimental
Имея это в виду, скоро у нас могут появиться лучшие инструменты для создания таких сценариев ... NB! Обратите внимание на МОЖНО, поскольку мы не можем знать, что на самом деле будет выпущено, можем ли мы использовать его в качестве службы или будет ли он предназначен только для API Connect!
person
Anders
schedule
24.01.2018