我们可以映射WSO2托管API端点URL中的版本值吗?

我们可以映射WSO2托管API端点URL中的版本值吗?,wso2,wso2-am,Wso2,Wso2 Am,我正在创建一个具有一些上下文路径和v1版本的API: 然后,我尝试提供指向后端的沙箱和生产端点。目标是实现以下目标: PRO:http://localhost:9090/myapi/{version} SB:http://localhost:8080/myapi/{version} 也就是说,我希望使用后端路径中的version字段 但是,我遇到以下错误: 沙盒终结点URI无效。请参阅HTTP端点文档 有关详细信息,请参阅WSO2 ESB的 无效的生产终结点URI。请 有关详细信息,请参阅W

我正在创建一个具有一些上下文路径和v1版本的API:

然后,我尝试提供指向后端的沙箱和生产端点。目标是实现以下目标:

PRO:
http://localhost:9090/myapi/{version}

SB:
http://localhost:8080/myapi/{version}

也就是说,我希望使用后端路径中的version字段

但是,我遇到以下错误:

沙盒终结点URI无效。请参阅HTTP端点文档 有关详细信息,请参阅WSO2 ESB的

无效的生产终结点URI。请 有关详细信息,请参阅WSO2 ESB的HTTP端点文档

有没有办法做到这一点

更新:

我发现了下面的文章(),它解释了如何使用uri.var前缀映射值。因此,在我的端点中,我有:

PRO:
http://localhost:9090/myapi/{uri.var.version}

SB:
http://localhost:8080/myapi/{uri.var.version}


现在的问题是它的值为空。

您可能必须创建流内中介策略才能将API版本获取到端点URL

例如,您可以创建一个名为“VersionSequence.xml”的文件,并将以下内容添加到该文件中。此序列中介器将允许将RESTAPI版本存储到名为“uri.var.Version”的属性中


然后,当在API管理器中实现API时,您可以将此中介策略上载到“启用消息中介”部分的流中的。之后,您可以如下所示设置端点,该端点将从您在中介流中创建的“uri.var.version”属性获取版本


为了更好地阐明需求,您希望通过使用变量定义版本有什么好处?它与。您的解决方案确实有助于删除上下文路径,但不会删除版本。使用这种替换{version}将允许我使用类似URL的URL,这些URL将被转换为带有变量替换的后端调用/api/v1/customers。如果您试图更改版本在上下文路径中的显示位置,可以尝试设置上下文,如“/wso2/myapp/{version}/api”。我不认为使用API Manager API版本设置后端服务版本有什么好处。问题与另一个问题相同,考虑到wso2 api版本与URL中的后端版本相同,我正在寻找一种不同的方法来使用变量替换来解决这个问题,我刚刚发现了这个问题,它寻找相同的方法:但它也没有解决这个特定问题的答案。
<?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>