映射apigee预流策略以从地图值验证

时间:2014-01-06 14:48:03

标签: apigee

假设我在我创建的地图中有一个条目。如何创建策略以将客户端请求中的参数变量与映射中的条目相关联,以及它们是否与引发错误错误无关。我知道在apigee 3.8中有一个工作室,我可以修改连接参数来做到这一点,但我真的很困惑我如何在边缘版本中做到这一点

2 个答案:

答案 0 :(得分:0)

您应该能够使用条件来执行此操作。在下面的示例中,'flow.variable.myvariable'将是一个自定义变量(您可以随意调用它)。使用KeyValueMap策略类型从键值存储中获取值,并将其填充到用于进行比较的自定义变量中。

<Flow>
 <Condition>request.queryparam.myparam != flow.variable.myvariable</Condition>
  <Request>
   <Step>
    <Name>ReturnAnErrorUsingAssignMessagePolicy</Name>
   </Step>
  </Request>
</Flow>

这里有几个活动部件。如果您提供有关实施细节的更多详细信息,我们可以为您提供更详细的信息。例如,您指的是什么“连接参数”?

答案 1 :(得分:0)

Apigee Edge中的地图可以使用与Apigee 3.8中可用的地图略有不同。在3.8中,您将使用服务标注来检索您的数据,如http:// {somehostname} / map / entry / attributes?map_name = map1&amp; key = key1其中key1是您引用的关键,在Apigee Edge中我们提供便利此功能通过提供检索该信息的策略,以便您不必担心管理添加和检索数据所需的服务标注。

您用于任何Map数据操作的策略称为KeyValueMapOperations

<KeyValueMapOperations async="false" continueOnError="false" enabled="true" name="getDataFromKVM">
<DisplayName>GetDataFromKVM</DisplayName>
<Get assignTo="kvmData" index="1">
    <Key>
        <Parameter ref="request.queryparam.key"></Parameter>
    </Key>
</Get>
<Scope>environment</Scope>

如果要检查密钥是否存在,可以在API流中引用变量上有条件,在流程中运行此策略后,还要对响应变量进行此类检查。

有关键值映射如何在Apigee边缘工作的更多信息,请参阅

http://apigee.com/docs/api-services/content/persist-data-using-keyvaluemap