【问题标题】:In Apigee, how to assign a value to a variable in Javascript to be used by the Statistics Collector policy?在 Apigee 中,如何为 Javascript 中的变量分配值以供 Statistics Collector 策略使用?
【发布时间】:2014-03-09 22:12:05
【问题描述】:

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

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

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

【问题讨论】:

    标签: javascript apigee


    【解决方案1】:

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

    【讨论】:

    • 非常感谢您的回答!有效。是的,我正在使用 RegEx 从查询参数值中提取所需的部分。再次感谢!
    猜你喜欢
    • 2022-11-17
    • 2018-02-19
    • 2016-06-20
    • 2022-11-18
    • 2014-09-22
    • 2014-03-23
    • 1970-01-01
    • 1970-01-01
    • 2012-10-17
    相关资源
    最近更新 更多