如何在KeyValueMapOperations策略中使用通过平台API创建的KeyValueMap

时间:2014-02-20 04:09:27

标签: apigee

我使用定义的in this doc平台API创建了一个键/值映射。我使用API​​范围的网址来创建名为 countrymap 的键/值地图。

  

https://api.enterprise.apigee.com/v1/o/{org_name}/apis/{api_name}/keyvaluemaps

插入我在制作教程时制作的样本天气api。

但是,当我在API代理中添加 KeyValueMapOperations 策略时,我似乎无法引用此地图。我尝试在定义中添加mapIdentifier="countrymap"(基于samples),但仍然没有看到它。

<KeyValueMapOperations async="false" continueOnError="false" enabled="true" mapIdentifier="countrymap" name="keyvaluemapoperations-2">
    <DisplayName>KeyValueMapOperations-2</DisplayName>
    <FaultRules/>
    <Properties/>
    <ExclusiveCache>false</ExclusiveCache>
    <ExpiryTimeInSecs>-1</ExpiryTimeInSecs>
    <Get assignTo="my.country" index="1">
        <Key>
            <Parameter ref="apigee.countryCode"></Parameter>
        </Key>
    </Get>
    <Scope>organization</Scope>
</KeyValueMapOperations>

如果我在上面的代码中添加<InitialEntries>定义,则该策略有效。

根据Key / Value Maps文档:

  

Key / ValueMaps提供用于存储任意名称/值对的API   可以通过自定义策略在运行时访问,也可以用于其他自定义   运行时要求,例如协议支持。

自定义策略是否包含KeyValueMapOperations策略?我在这里缺少什么?

3 个答案:

答案 0 :(得分:2)

正如您所提到的,您将KeyValueMap放在api的范围内。要访问该KVM,您需要使用:

<Scope>apiproxy</Scope>

请参阅配置策略here的详细信息。

答案 1 :(得分:1)

步骤1:验证是否正确创建了keyvalumap: / v1 / o / {org_name} / apis / {api_name} / keyvaluemaps“ - &gt;这应该列出国家地图KVM

步骤2:在尝试对其进行GET调用之前填充KVM。您可以使用API​​调用(apigee.com/docs/api/api_methods/62-update-keyvaluemap)或使用PUT填充它KeyValueMapOperations的操作如下所示(apigee.com/docs/api-services/content/persist-data-using-keyvaluemap)

步骤3:检查KVM的条目 / V1 / O / {ORG_NAME} / API的/ {API_NAME} / keyvaluemaps / countrymap

步骤4:您可以使用示例中给出的相同KeyValueMapOperations策略来获取KVM上的内容

答案 2 :(得分:0)

我也遇到了这个问题,在KeyValueMapOperations中进行了以下更改后,它开始为我工作。

<Scope>apiproxy</Scope>
<Parameter>apigee.countryCode</Parameter>