在Apigee中,如何为Javascript中的变量赋值以供统计信息收集器策略使用?

时间:2014-02-11 21:32:50

标签: javascript apigee

在使用Apigee API代理时,我从URL获取了查询参数的值并提取了其中的一部分。我需要使用统计信息收集器策略获取查询参数的提取部分的消息计数。

一个例子: orgname-test.apigee.net/v0/myURL?Qparam=abc.9421.345.ghi567是查询参数'Qparam'的网址,其值为'abc.9421.345.ghi567'。

使用Javascript策略,我设法获取查询参数值并提取第三个点之后的部分,即; '345'。我需要在查询参数值('345')的这一部分上使用Statistics Collector策略来计算它被调用的次数。我怎样才能做到这一点?这是正确的方法吗?

1 个答案:

答案 0 :(得分:0)

1)解析查询参数并从字符串中检索值后,在JavaScript策略中设置流变量,例如:

context.setVariable('QParam.thirdElement',value)

2)在Statistic Collector策略中设置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中提取值。