假设我在创建的地图中有一个条目。如何创建策略以将客户端请求中的参数变量与映射中的条目相关联,以及它们是否与引发错误错误相关。我知道在 apigee 3.8 中有一个工作室,我可以修改连接参数来实现这一点,但我真的很困惑如何在边缘版本中做到这一点
2 回答
Apigee Edge 中可以使用的地图与 Apigee 3.8 中可用的地图在使用上略有不同。在 3.8 中,您将使用服务调用来检索您的数据,例如 http://{somehostname}/map/entry/attributes?map_name=map1&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
您应该能够使用条件来执行此操作。在下面的示例中,“flow.variable.myvariable”将是一个自定义变量(您可以随意调用它)。使用 KeyValueMap 策略类型从键值存储中获取值并将其填充到用于进行比较的自定义变量中。
<Flow>
<Condition>request.queryparam.myparam != flow.variable.myvariable</Condition>
<Request>
<Step>
<Name>ReturnAnErrorUsingAssignMessagePolicy</Name>
</Step>
</Request>
</Flow>
这里有几个活动部分。如果您提供有关实施细节的更多详细信息,我们可以为您提供更详细的信息。例如,您指的是什么“连接参数”?