xml - 如何在公共 API 合约中更好地组织 XML 数据中任意类型的存储?
问题描述
我设计了一个带有 XML 格式数据的公共 API。在返回 API 的 XML 对象中,有任意类型的字段。如何组织数据存储,使集成商在实现 API 时问题尽可能少?最重要的是,我担心添加一个新的任意类型会破坏数据契约,我想保持向后兼容性。
示例_1:
<Data>
<Value xsi:type="A">
<Desc>description<Desc/>
<Value/>
<Value xsi:type="B">
<Index>1</Index>
<Count>2</Count>
</Value>
</Data>
示例_2:
<Data>
<Value xsi:type="A">
<Desc>description<Desc/>
<Value/>
<Value xsi:type="B">
<Index>1</Index>
<Count>2</Count>
</Value>
<Value xsi:type="C">
<Name>Alex</Name>
</Value>
</Data>
当我以这种方式延长合同时,这是正常的做法吗?(示例_1 -> 示例_2)
解决方案
xsi:type="B"
这是合同的严重并发症,为了简化,用简单的 {string-string}[] 字典替换任意类型
推荐阅读
- javascript - 如何将服务器端 JSON 传递/导入到 vue 应用程序?
- python - HTML 到 PDF 还保留了 Django 中的 CSS 和引导样式
- php - Codeigniter 3 验证码助手 create_captcha 返回 bool
- powershell - 从文件夹中提取名称并使用它 powershell
- python - Pytorch 批量逐行应用函数
- ada - GNAT CE 2020 无法识别 -gnatt 开关
- c - 引用传递也可以称为指针传递吗?
- sql-server - 如何在全文索引上定义固定的 html 类型
- javascript - [变量]是什么意思:三元运算符条件下的值
- jdbc - CallableStatement registerOutParameter with OracleTypes.ARRAY 耗时太长