代码之家  ›  专栏  ›  技术社区  ›  codependent

我们可以在wso2管理的api端点url中映射版本值吗?

  •  0
  • codependent  · 技术社区  · 6 年前

    我正在用一些上下文路径和v1版本创建API:

    enter image description here

    然后我尝试提供指向后端的沙盒和生产端点。其目标是:

    赞成的意见: http://localhost:9090/myapi/{version}

    某人: http://localhost:8080/myapi/{version}

    也就是说,我想使用后端路径中的版本字段。

    enter image description here

    但是,我得到以下错误:

    沙盒终结点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前缀映射值。所以现在在我的终点,我有:

    赞成的意见: http://localhost:9090/myapi/{uri.var.version}

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

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

    1 回复  |  直到 6 年前
        1
  •  1
  •   Rans    6 年前

    您可能需要创建一个流内中介策略来将API版本获取到端点URL。

    例如,您可以创建一个名为“versionSequence.xml”的文件,并将以下内容添加到该文件中。此序列中介器将允许将RESTAPI版本存储到名为“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”属性中获取版本。

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