将XML / JSON映射到关系表记录,反之亦然

时间:2017-10-23 08:56:28

标签: json xml mapping dsl

我们需要设计一种通用方法,将各种API响应(XML和JSON)映射到关系表以进行数据加载。该映射也需要支持其他方向,即需要解析关系表数据以组成发送给各种API提供者的API请求主体以更新其系统数据。这些要求主要是构建通用API集成平台。该平台允许用户配置任何企业系统API调用并将其映射到我们的应用程序数据(关系)模型,反之亦然。

以下是如何将关系表记录转换为API请求正文以更新其他系统数据的示例

非规范化表

Name        Transaction Details
Customer 1  Transaction 1
Customer 1  Transaction 2
Customer 1  Transaction 3
Customer 1  Transaction 4

以下是XML的外观

<Customer>          
    <Name>Customer 1</Name>
    <Transaction>       
        Transaction 1 details…  
    </Transaction>      
    <Transaction>       
        Transaction 2 details…  
    </Transaction>      
    <Transaction>       
        Transaction 3 details…  
    </Transaction>      
    <Transaction>       
        Transaction 4 details…  
    </Transaction>      
</Customer>     

有哪些建议可以设计和实现此映射问题?是否为此类用例创建了任何DSL(特定于域的语言)?

2 个答案:

答案 0 :(得分:0)

我会考虑graphql和graphql / sql集成, 例如https://github.com/rexxars/sql-to-graphql

答案 1 :(得分:0)

Symphonia Mapping Language(SML)随Orion's Rhapsody集成引擎打包。非常擅长将XML或JSON映射到关系数据模型,Rhapsody和大多数其他集成引擎都附带了许多类型的数据库。 Rhapsody历史上面向HL7数据和医疗保健实施,但它们对于Web服务也很方便。我确信有一些免费或更便宜的映射版本,但对于企业级API的东西,这些引擎是无法击败的。