1

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

一个示例:orgname-test.apigee.net/v0/myURL?Qparam=abc.9421.345.ghi567 是带有查询参数“Qparam”且值为“abc.9421.345.ghi567”的 URL。

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

4

1 回答 1

0

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

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

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 中提取值。

于 2014-02-11T23:07:28.083 回答