我想从请求的JSON主体中获取变量。目前,我在我的请求前流程中有这个提取变量的策略:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ExtractVariables async="false" continueOnError="true" enabled="true" name="extractvariables-grabrequestpayload">
<DisplayName>ExtractVariables-GrabRequestPayload</DisplayName>
<Source clearPayload="false">request</Source>
<FaultRules/>
<Properties/>
<IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables>
<JSONPayload>
<Variable name="payload">
<JSONPath>$</JSONPath>
</Variable>
<Variable name="method">
<JSONPath>$.method</JSONPath>
</Variable>
</JSONPayload>
<VariablePrefix>myprefix</VariablePrefix>
请求正文示例如下:
{ "method":“取消”,"params":{“分区”:“05”,"itemnumber":"1",“收件人编号”:"1","sku":"0JAX330000“}}
但是,我在trace中看不到变量,即使我可以看到上面的JSON正确地填充了content.request,并且策略正在执行。我看不到任何从请求正文中抓取它的引用,只有响应。这是不可能的吗?
发布于 2014-03-13 04:53:15
ExtractVariables策略不会通过UI显示变量。您可以使用JavaScript策略来调试代码并显示这些变量。此策略应在ExtractVariables策略之后执行。然后跟踪工具应显示变量。
context.getVariable('myprefix.payload');
context.getVariable('myprefix.method');您还可以设置另一个变量来查看实际值:
context.setVariable('method-in-JavaScript', context.getVariable('myprefix.method') )发布于 2014-03-13 09:40:57
以下是一些值得尝试的事情:
application/json,以便apigee work路径提取可以正常工作,并下载-
<Point id="Execution">和<Property name="stepDefinition-name">extractvariables-grabrequestpayload</Property>。这是您的提取变量策略执行步骤。在这里检查VariableAccess元素的Point id。如果设置了任何内容,它将在此处显示。比如<Set name="extractvariables-1.invoked" success="true" value="true"/>。这表明策略已成功执行,并且是否设置了任何变量。发布于 2014-03-13 04:35:37
您是否在使用经典(较旧)版本的跟踪工具?你可能想尝试点击右上角的“尝试新的测试版跟踪”。如果使用它显示了您正在查找的变量,请让我知道。
https://stackoverflow.com/questions/22362622
复制相似问题