WSO2 API Manager 1.9.1 - 路由

时间:2015-12-30 04:20:58

标签: wso2 wso2-am

在WSO2 API Manger中,有没有办法从请求xml / json(有效负载)中读取参数值,并根据该值将请求路由到不同的后端端点?

1 个答案:

答案 0 :(得分:0)

您可以尝试使用中介扩展程序。

API Manager具有其收到的API调用请求的默认中介流。您可以扩展此默认中介流以路由请求。

  1. 首先编写一个序列文件来改变流程。样本序列为 如下。
  2. <sequence xmlns="http://ws.apache.org/ns/synapse" name="YahooWeather2">
      <property name="YQL" 
            type="Expression" 
            expression="concat('?q=select%20*%20from%20weather.forecast%20where%20woeid%20in%20(select%20woeid%20from%20geo.places(1)%20where%20text%3D%22',syn:get-property('uri.var.zipcode'),',',syn:get-property('uri.var.country'),'%22)format=json')"/>
      <property name="REST_URL_POSTFIX" type="Expression" expression="get-property('YQL')" scope="Axis2"/>
    </sequence>
    
    1. 要将序列文件上传到APIM,请以 admin 身份登录 main-&gt; 资源 - &GT;浏览
    2. 转到 / _ system / governance / apimgt / customsequences / in。 树视图
    3. 点击添加资源,上传您创建的序列文件。
    4. 登录API发布商,选择API并点击修改然后转到 到管理标签。
    5. 点击复选框选中以选择自定义序列 在消息流 In Flow 下拉列表中执行 选择你的序列( in sample case YahooWeather2 )并做 保存&amp;发布
    6. 登录API商店并订阅API并生成访问权限 令牌。
    7. 您可以在API商店中通过 API控制台查看可用性。有关详细信息,请参阅https://docs.wso2.com/display/AM191/Change+the+Default+Mediation+Flow+of+API+Requests