В Apigee, как присвоить значение переменной в Javascript для использования политикой сборщика статистики?

Работая с API-прокси Apigee, я получил значение параметра запроса из URL-адреса и извлек его часть. Мне нужно получить количество сообщений в извлеченной части параметра запроса с помощью политики сбора статистики.

Пример: orgname-test.apigee.net/v0/myURL?Qparam=abc.9421.345.ghi567 — это URL-адрес с параметром запроса «Qparam» со значением «abc.9421.345.ghi567».

Используя политику Javascript, мне удалось получить значение параметра запроса и извлечь часть, идущую после третьей точки, то есть; «345». Мне нужно использовать политику сборщика статистики в этой части значения параметра запроса ('345'), чтобы подсчитать, сколько раз он вызывался. Как я могу это сделать? И вообще правильный ли это подход?


person Deepti N M    schedule 11.02.2014    source источник


Ответы (1)


1) После анализа параметра запроса и извлечения значения из строки установите переменную потока в политике JavaScript, например:

context.setVariable('QParam. ThirdElement', значение)

2) Установите QParam. ThirdElement в политике сбора статистики:

Позже это значение будет доступно для установки в качестве ссылки в политике сборщика статистики. И может использоваться как:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<StatisticsCollector async="false" continueOnError="false" enabled="true" name="statisticscollector-analyze-QParam">
    <DisplayName>StatisticsCollector-AnalyzeQParam</DisplayName>
    <FaultRules/>
    <Properties/>
    <Statistics>
        <Statistic name="thirdElement" ref="QParam.thirdElement" type="STRING">id</Statistic>
    </Statistics>
</StatisticsCollector>

Ваш подход должен подойти, если нет другого способа получить это значение в отдельном параметре. Возможно, используя RegEx для извлечения значения из QParam.

person Diego    schedule 11.02.2014
comment
Большое спасибо за этот ответ! Это сработало. И да, я использовал RegEx для извлечения необходимой части из значения параметра запроса. Спасибо еще раз! - person Deepti N M; 12.02.2014