Redirect 如何使用apigee将数据从一个api发送到另一个api

Redirect 如何使用apigee将数据从一个api发送到另一个api,redirect,apigee,Redirect,Apigee,我最近开始使用apigee代理。请不要阻止我。 我正在使用邮递员将数据发布到代理中。 我已经分配了一个提取策略来从json数据中提取一些值,如 速度、纬度、经度等。 然后,我根据客户要求使用分配策略将速度转换为gpsspeed等。 之后,我使用javascript策略输出速度是否高于50,然后是高还是低。 我举了一个数据的例子。 现在我想将结果数据转发到另一个api。可能是apigee为测试目的提供的任何东西。我想查看结果api中的数据。 我使用服务调用策略将数据发送到另一个url。 我附上保险

我最近开始使用apigee代理。请不要阻止我。 我正在使用邮递员将数据发布到代理中。 我已经分配了一个提取策略来从json数据中提取一些值,如 速度、纬度、经度等。 然后,我根据客户要求使用分配策略将速度转换为gpsspeed等。 之后,我使用javascript策略输出速度是否高于50,然后是高还是低。 我举了一个数据的例子。 现在我想将结果数据转发到另一个api。可能是apigee为测试目的提供的任何东西。我想查看结果api中的数据。 我使用服务调用策略将数据发送到另一个url。 我附上保险单

 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
 <ServiceCallout name="ServiceCallout-GeocodingRequest1">
 <DisplayName>Inline request message</DisplayName>
 <Request variable="callAnotherService">
    <Set>
        <Payload contentType="application/json">
          {response.content} // reading data from javascript policy
        </Payload>
    </Set>
</Request>
<Response>CalloutResponse</Response>
<Timeout>30000</Timeout>
<HTTPTargetConnection>
    <URL>http://httpbin.org/anything</URL>
</HTTPTargetConnection>
 var content = context.getVariable("response.content") //read the response
  content = JSON.parse(content); //parse into an object
  if (content.speed > 50) { //apply the condition
  content.speed = "high";
   }
  else {
  content.speed = "low";
  }
  context.setVariable("response.content", JSON.stringify(content)); //set it 
  back on the response

有人能帮助我如何将数据转发到另一个api吗?我的过程正确吗?从java脚本策略提取变量的过程正确吗?请指导我。

好的,如果您确定setVariable之后的值不是空的,请尝试下面的代码

注意:在JavaScript策略中,我在将值设置回变量名后更改了变量名(以免混淆)

并尝试此服务调用策略:

<Request clearPayload="true" variable="callAnotherService">
    <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
    <Set>       
        <Payload variablePrefix="@" variableSuffix="#">@serviceCalloutRequest#</Payload>
        <Verb>POST</Verb>
    </Set>
</Request>

假的
@服务调用请求#
邮递

使用variablePrefixvariableSuffix引用您在javascript策略中分配的值,在这种情况下,我从“serviceCalloutRequest”中引用该值。

您确定javascript策略中的对象“response.content”在将该值设置回itIts not empty后不为空。。
<Request clearPayload="true" variable="callAnotherService">
    <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
    <Set>       
        <Payload variablePrefix="@" variableSuffix="#">@serviceCalloutRequest#</Payload>
        <Verb>POST</Verb>
    </Set>
</Request>