【问题标题】:Replace a body parameter based on value that client sent根据客户端发送的值替换正文参数
【发布时间】:2022-11-17 21:42:32
【问题描述】:

我在 WSO2 integrator studio 中创建了一个 API,包含以下主体以接收应用程序请求。

{"count": "2000",
"Name": "22312312"
  },

为了响应上述请求,我必须向端点发送以下 JSON 正文:

{“计数”:“2000”, “名称”:“银行” },

如您所见,主体之间的区别在于“NAME”值。在这种情况下,每个客户端在“名称”参数中发送自己的唯一编号,我必须将其转换为字符串名称(在 WSO2 企业集成器中)并将其发送到端点。

我如何在 Integrator Studio 中管理它?

【问题讨论】:

  • 映射是动态的吗?您在哪里保存唯一编号和字符串名称之间的关系?

标签: wso2 wso2-enterprise-integrator wso2-integration-studio


【解决方案1】:

这是你如何做到的。您可以在 LocalEntry 中拥有映射,然后使用 Property 中介和 Enrich 中介的组合来选择 Name 并替换 Code。检查以下内容。

本地条目

<?xml version="1.0" encoding="UTF-8"?>
<localEntry key="Mappings" xmlns="http://ws.apache.org/ns/synapse">
    <Mappings xmlns="">
        <bank>
            <code>22312312</code>
            <name>bank</name>
        </bank>
        <bank>
            <code>22312313</code>
            <name>bank2</name>
        </bank>
        <bank>
            <code>22312314</code>
            <name>bank3</name>
        </bank>
    </Mappings>
</localEntry>

应用程序接口

<?xml version="1.0" encoding="UTF-8"?>
<api context="/bank" name="BankAPI" xmlns="http://ws.apache.org/ns/synapse">
    <resource methods="POST" url-mapping="/code">
        <inSequence>
            <property expression="get-property('Mappings')" name="localEntry" scope="default" type="OM"/>
            <property expression="json-eval($.Name)" name="BankCode" scope="default"/>
            <property expression="$ctx:localEntry//bank[code = $ctx:BankCode]/name/text()" name="BankName"/>
            <enrich>
                <source type="property" clone="true" property="BankName"/>
                <target xpath="json-eval($.Name)"/>
            </enrich>
            <respond/>
        </inSequence>
        <outSequence/>
        <faultSequence/>
    </resource>
</api>

请求和响应

{
    "count": "2000",
    "Name": "22312313"
}
{
    "count": "2000",
    "Name": "bank2"
}

如果您的映射是动态的,例如,如果您需要将代码传递给另一个 API 并获取名称,您仍然可以使用与 Enrich 中介器相同的逻辑。您可以从 API 获取数据,而不是从 LocalEntry 读取。

【讨论】:

    猜你喜欢
    • 2013-12-31
    • 2018-10-12
    • 1970-01-01
    • 2015-01-08
    • 1970-01-01
    • 2012-10-04
    • 2015-11-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多