我正在创建具有某些上下文路径和v1版本的API:
然后,我尝试提供指向后端的沙盒和生产端点。目标是具有以下条件:
PRO: http://localhost:9090/myapi/{version}
SB: http://localhost:8080/myapi/{version}
这就是说我想在后端路径中使用version字段。
但是我遇到以下错误:
无效的沙盒端点URI。请参考HTTP端点文档 有关详细信息,请参见WSO2 ESB。
无效的生产端点URI。请 有关详细信息,请参阅WSO2 ESB的HTTP端点文档。
有什么办法吗?
更新:
我发现以下文章(https://docs.wso2.com/display/AM260/Map+the+Parameters+of+your+Backend+URLs+with+the+API+Publisher+URLs)解释了如何使用uri.var前缀映射值。所以现在在我的端点中有:
PRO: http://localhost:9090/myapi/{uri.var.version}
SB: http://localhost:8080/myapi/{uri.var.version}
现在的问题是它的值为空。
答案 0 :(得分:1)
您可能必须创建一个In Flow中介策略才能将API版本获取到端点URL。
例如,您可以创建一个名为“ VersionSequence.xml”的文件,并将以下内容添加到该文件中。此序列介体将允许将REST API版本存储到名为“ uri.var.version”的属性中。
<?xml version="1.0" encoding="UTF-8"?>
<sequence name="VersionSequence" trace="disable" xmlns="http://ws.apache.org/ns/synapse">
<property expression="$ctx:SYNAPSE_REST_API_VERSION" name="uri.var.version"/>
<log level="custom">
<property expression="get-property('uri.var.version')" name="APIVersion"/>
</log>
</sequence>
然后,您可以在API管理器中实施该API时,将该中介策略上载到“ 启用消息中介”部分的流中 。之后,您可以将端点设置如下,它将从您在中介流中创建的“ uri.var.version”属性中获取版本。