WSO2 APIM 未发布的 API 的自定义序列/设置变量



我们定义了一个默认的自定义序列来管理不同的网关,如下所述

我们已经按照文档创建全局连接中所述安装了序列

该序列仅从环境中读取 2 个变量,并用于构建终结点 URL。这是代码:

<sequence xmlns="http://ws.apache.org/ns/synapse" name="WSO2AM--Ext--In">
<property name="uri.var.host" expression="get-property('system','host')" />
<property name="uri.var.port" expression="get-property('system','port')" />
</sequence>

这在已发布的 API 中工作正常,但如果我们将 API 降级为原型(无需订阅即可直接使用(,则它不起作用。

我们尝试过:

  • 在 API 级别将其安装为消息中介策略

  • /repository/resources/api_templates/prototype_template.xml在 序列

测试时的错误报告空主机名(因为它尝试读取变量,并且它是空的(

您知道如何在原型环境中设置环境变量吗?

在"原型端点"中部署 API 时,使用velocity_template.xml创建 API 实现。

此模板为原型和已发布的 API 生成不同的代码。

我强制包含APIManagerExtensionHandler(这是处理自定义扩展序列的处理程序(,在速度模板中添加以下内容(在处理程序添加循环之后(。

patch --forward $WSO2_PATH/$1/repository/resources/api_templates/velocity_template.xml <<EOF
*** velocity_template.xml   2018-06-02 11:04:42.474476581 +0200
--- velocity_template.xml.patched   2018-06-02 11:07:28.495395384 +0200
***************
*** 361,366 ****
--- 361,369 ----
#end
</handler>
#end
+ #if($apiStatus == 'PROTOTYPED')
+ <handler class="org.wso2.carbon.apimgt.gateway.handlers.ext.APIManagerExtensionHandler"/>
+ #end
</handlers>
#end
#end
EOF

最新更新