Включение параметров запроса в IBM API Connect - PullRequest
0 голосов
/ 15 ноября 2018

Привет, мы используем IBM Api Connect в качестве шлюза для наших API, я не могу понять, как сделать параметры запроса необязательными, я попытался сделать это в разделах DESIGN и ASSEMBLE IBM Api Connect, но не повезло.

это мой последний URL, который я хочу вызвать www.testdomain.products / getProducts? Param1 = "" & param2 = "" & param3 = ""

здесь все параметры необязательныя даю этот URL как

www.testdomain.products / getProducts? param1 = $ (request.parameters.param1) )m2 = $ (request.parameters.param2) & param3 = $ (request.parameters.param3)

в одном случае использования я только передаю param1 и хочу, чтобы окончательный URL был создан только с param1, но это то, что я вижу

www.testdomain.products / getProducts?param1 = "value" 2m2 = ¶m3 =

что я должен сделать, чтобы URL создавался только со значениями, которые я передаю, как это

www.testdomain.products /getProducts? param1 = "значение"

1 Ответ

0 голосов
/ 28 ноября 2018

Этого можно достичь путем создания динамического целевого URL-адреса с использованием сценария, а не установки статического URL-адреса бэкэнд-службы при вызове / действии прокси.

Монтажная секция

Получить Действие GatewayScript перед вызовом

var targetUrl = "www.testdomain.products/getProducts?";
var input_param1 = apim.getvariable('request.parameters.param1');
var input_param2 = apim.getvariable('request.parameters.param2');


if(input_param1 !==null || input_param1 !="" || input_param1 != undefined ){
    targetUrl = targetUrl.concat("param1="+input_param1))
}
if(input_param2 !==null || input_param2 !="" || input_param2 != undefined ){
    if(targetUrl.indexOf('param1') > 0){
        targetUrl = targetUrl.concat('&')
    }
    targetUrl = targetUrl.concat("param2="+input_param2))
}

apim.setvariable('target-url',targetUrl)

В Invoke / Proxy - Используйте это $(target-url)

Возможно, существует некоторая синтаксическая проблема, но мы можем добиться этого, используя вышеуказанный способ. Спасибо!

...