我正在接收带有一些查询参数的HTTP / SOAP请求。这些查询参数的重复格式为key = value为/ q = key1 = value1& key2 = value2等... 我想从上面的URL检索所有密钥,并检查它们是否有效。 1.有没有办法定义可以容纳这些键的全局数组 2.如何验证密钥是否存在。 ESB是否支持java“包含”API?
答案 0 :(得分:1)
我相信你正在做GET请求.. 您可以按顺序检索所有查询参数。
例如: 对于请求网址; http:// localhost:8280 / getSimpleQuote?symbol = IBM
<property name="symbol" expression="$url:symbol"/>
将返回符号&#39; IBM&#39;。
获得所有密钥后,您可以验证它们
答案 1 :(得分:0)
您可以使用xpath表达式get-property {'uri.var.xxx'}获取查询参数,xxx是您需要获取的查询参数的名称。
使用URL映射定义资源时,资源只会处理与给定URL映射匹配的请求。或者,可以使用URI模板配置资源。 URI模板表示使用模式和变量的URI类。下面给出了有效URI模板的一些示例。
/顺序/ {订单ID} /字典/ {炭} / {字} 花括号内的所有标识符都被视为变量。下面给出了与模板“/ order / {orderId}”匹配的URL。
/顺序/ A0001 在上面的URL实例中,变量orderId已被赋值为“A0001”。同样,以下网址遵循模板“/ dictionary / {char} / {word}”。
/字典/ C /猫 在这种情况下,变量“char”具有值“c”,变量“word”具有值“cat”。当资源与URI模板关联时,资源将处理与模板匹配的所有请求。同时,ESB将通过消息上下文属性提供对模板变量的确切值的访问。例如,假设使用URI模板“/ dictionary / {char} / {word}”配置的资源。如果请求“/ dictionary / c / cat”被发送到ESB,它将被分派到上面的资源,我们将能够使用WSO2 ESB的get-property XPath扩展来检索两个变量的确切值: