【问题标题】:How to Configure Path Params in Wso2 API manager 1.8?如何在 Wso2 API manager 1.8 中配置路径参数?
【发布时间】:2015-06-05 14:23:20
【问题描述】:

我正在使用 Wso2 API Manager 1.8。我想知道如何配置路径参数
那是动态的。我会用下面的例子来解释

 My API starts with context api/example/  and i have an end point 

 http://users/api/example/{Id}.json

 How to map the id variable with coming id value . ?

我想加载具有给定值的“id”并相应地显示结果。我该怎么做?

【问题讨论】:

  • 我使用的是 WSO2-AM 1.8.0 版本。我添加了 API 并且工作正常。现在我有另一个场景,我需要读取多个路径参数,并且我需要将这些值附加到生产 url。为此,我将 URL 模式添加为 {param1}/{param12},但在访问 API 时出现 404 错误。任何帮助添加资源到 API 和动态路径参数读取?提前谢谢。

标签: wso2 wso2-am


【解决方案1】:

在突触中,您可以读取添加到属性的参数,如下所示

<property name="val1" expression="get-property('uri.var.param1')"/>
<property name="val2" expression="get-property('uri.var.param1')"/>

然后可以使用 REST_URL_POSTFIX 属性 [1] 将这些值附加到生产 url,如下所示。

<property name="REST_URL_POSTFIX" expression="fn:concat('/',$ctx:val1,'/',$ctx:val2)"  scope="axis2"/>

这会将值附加到生产 url -> 例如http://ip/mytest/param1/param2

wso2 apimanger 支持自定义中介扩展[2]。所以在您的情况下,您可以添加一个 insquence 并在其中创建您的逻辑。

1.https://docs.wso2.com/display/ESB470/HTTP+Transport+Properties 2.https://docs.wso2.com/display/AM180/Adding+Mediation+Extensions

【讨论】:

    【解决方案2】:

    您可以为此使用 url 模板。

    当您创建 API 时,按如下方式添加资源

    url-pattern /{context}/{version}/ {id}.json

    这会将带有http://users/api/example/{Id}.json 模式的任何请求定向到上述资源。

    注意:如果您没有将 API 版本设置为默认值,并且说您在创建 API 时已将版本设置为 1.0.0,那么您可能需要按如下方式调整请求。 (就在上下文部分之后,您需要添加 API 版本) http://users/api/example/1.0.0/{Id}.json

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多