在 WSO2 EI / ESB 中,我如何处理基于 array/object 的查询参数? (即带方括号)
In WSO2 EI / ESB how do I process array/object based query parameters? (i.e. with square brackets)
我有一个 API 使用查询参数如下:
/events/search
?title=royal
&area=southeast
&maint[date]=20180823
&maint[user]=oscar
&maint[action]=release
(为了便于阅读而添加了换行符)
在 WSO2 EI 中处理简单的查询参数很简单。有几种方法可以使用 property mediator:
<property name="title" expression="get-property('query.param.title')"/>
<property name="title" expression="$url:title"/>
<property name="title" expression="$ctx:query.param.title"/>
但是,我无法处理基于 array/object 的查询参数。我尝试以各种方式使用 property mediator,但没有一种有效:
<property name="maintDate" expression="get-property('query.param.maint[date]')"/>
<property name="maintDate" expression="get-property('query.param.maint.date')"/>
<property name="maintDate" expression="$url:maint[date]"/>
<property name="maintDate" expression="$url:maint.date"/>
<property name="maintDate" expression="$url:maint[date]"/>
<property name="maintDate" expression="$url:maint%5Bdate%5D"/>
有没有人在这方面有经验并取得成功?
您的 ESB API URL 模板如下所示:
uri-template="/test?title={t}&area={a}&maint[date]={date}&maint[user]={user}&maint[action]={action}
您可以访问方括号查询参数如下:
<property name="date" expression="$ctx:uri.var.date"/>
<property name="user" expression="$ctx:uri.var.user"/>
<property name="action" expression="$ctx:uri.var.action"/>
我有一个 API 使用查询参数如下:
/events/search
?title=royal
&area=southeast
&maint[date]=20180823
&maint[user]=oscar
&maint[action]=release
(为了便于阅读而添加了换行符)
在 WSO2 EI 中处理简单的查询参数很简单。有几种方法可以使用 property mediator:
<property name="title" expression="get-property('query.param.title')"/>
<property name="title" expression="$url:title"/>
<property name="title" expression="$ctx:query.param.title"/>
但是,我无法处理基于 array/object 的查询参数。我尝试以各种方式使用 property mediator,但没有一种有效:
<property name="maintDate" expression="get-property('query.param.maint[date]')"/>
<property name="maintDate" expression="get-property('query.param.maint.date')"/>
<property name="maintDate" expression="$url:maint[date]"/>
<property name="maintDate" expression="$url:maint.date"/>
<property name="maintDate" expression="$url:maint[date]"/>
<property name="maintDate" expression="$url:maint%5Bdate%5D"/>
有没有人在这方面有经验并取得成功?
您的 ESB API URL 模板如下所示:
uri-template="/test?title={t}&area={a}&maint[date]={date}&maint[user]={user}&maint[action]={action}
您可以访问方括号查询参数如下:
<property name="date" expression="$ctx:uri.var.date"/>
<property name="user" expression="$ctx:uri.var.user"/>
<property name="action" expression="$ctx:uri.var.action"/>