Azure APIM | Liquid 模板 - 在没有集成帐户的情况下将 JSON 转换为 XML
Azure APIM | Liquid Template - Transform JSON to XML without an Integration Account
我正在构建一个逻辑应用程序以从我的本地 SQL 数据库中提取数据 -> 将其转换为 XML -> 将其发送到 SOAP API。
这是我从内部部署数据库进入逻辑应用程序的示例数据:
{
"ResultSets": {
"Table1": [
{
"ID": "VM001",
"FirstName": "TestFirstName",
"LastName": "TestLastName",
"Email": "test1@company.com",
"DOB": "1990-05-05"
},
{
"ID": "VM002",
"FirstName": "TestFirstName2",
"LastName": "TestLastName2",
"Email": "test2@company.com",
"DOB": "1990-06-06"
}
]
},
"OutputParameters": {}
}
...然后我的计划是调用内部 API 并应用某种策略(我相信我们可以在 Inbound/Outbound 策略中使用 Liquid 模板而不使用集成帐户或 Azure Function) 将上面的数据转换为下面的数据 XML 但我正在努力解决它:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Header/>
<soapenv:Body>
<userRequest>
<extMessageId>12345</extMessageId>
<users>
<!--1 or more repetitions:-->
<user>
<ID> ID from JSON data </ID>
<!--Optional:-->
<FirstName> FirstName from JSON data </FirstName>
<LastName> Lastname from JSON data </LastName>
<Email> Email from JSON data </Email>
<DOB> DOB from JSON data </DOB>
</user>
</users>
</userRequest>
</soapenv:Body>
</soapenv:Envelope>
有人可以帮忙吗。
为了这个需求,我创建了一个 APIM 并编辑了它的政策,供您参考:
如您所述,字段 <FirstName>
、<LastName>
... 是可选的。如果您仍希望 <FirstName>
标签显示空值,则无需执行任何其他操作。如果您不想在 <FirstName>
标签没有值时显示它,您需要按如下方式编辑 liquid 模板:
希望对你有帮助~
我正在构建一个逻辑应用程序以从我的本地 SQL 数据库中提取数据 -> 将其转换为 XML -> 将其发送到 SOAP API。
这是我从内部部署数据库进入逻辑应用程序的示例数据:
{
"ResultSets": {
"Table1": [
{
"ID": "VM001",
"FirstName": "TestFirstName",
"LastName": "TestLastName",
"Email": "test1@company.com",
"DOB": "1990-05-05"
},
{
"ID": "VM002",
"FirstName": "TestFirstName2",
"LastName": "TestLastName2",
"Email": "test2@company.com",
"DOB": "1990-06-06"
}
]
},
"OutputParameters": {}
}
...然后我的计划是调用内部 API 并应用某种策略(我相信我们可以在 Inbound/Outbound 策略中使用 Liquid 模板而不使用集成帐户或 Azure Function) 将上面的数据转换为下面的数据 XML 但我正在努力解决它:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Header/>
<soapenv:Body>
<userRequest>
<extMessageId>12345</extMessageId>
<users>
<!--1 or more repetitions:-->
<user>
<ID> ID from JSON data </ID>
<!--Optional:-->
<FirstName> FirstName from JSON data </FirstName>
<LastName> Lastname from JSON data </LastName>
<Email> Email from JSON data </Email>
<DOB> DOB from JSON data </DOB>
</user>
</users>
</userRequest>
</soapenv:Body>
</soapenv:Envelope>
有人可以帮忙吗。
为了这个需求,我创建了一个 APIM 并编辑了它的政策,供您参考:
如您所述,字段 <FirstName>
、<LastName>
... 是可选的。如果您仍希望 <FirstName>
标签显示空值,则无需执行任何其他操作。如果您不想在 <FirstName>
标签没有值时显示它,您需要按如下方式编辑 liquid 模板:
希望对你有帮助~