记录XML的最佳格式是什么?

时间:2012-01-05 22:38:27

标签: xml api documentation backwards-compatibility

我目前正在编写API的规范,其工作原理如下:

  • 客户端向具有零个或多个HTTP参数的特定网址发布HTTPS帖子
  • 服务器使用简短的XML文档进行响应

传输的数据非常轻。大多数响应将小于1k,最大响应将只有10k。

向后兼容性很重要。我希望旧客户端能够继续正常使用服务器的升级版本。

这是我想告诉客户的: -

  • 我希望客户端读取XML,但只能访问处理所需的元素。
  • 可以在升级服务器的任何时候将其他元素或属性添加到XML文档中。客户应该跳过他们不知道的任何事情。

即使现在在响应中返回了其他信息,老客户端仍将继续工作。 (从XML中删除元素显然更加困难,并且需要一些弃用过程)。

记录返回的XML的最佳格式是什么?

我担心在本文档中使用正式语言(例如XSD):

  • 添加额外的属性或元素意味着XML不符合以前发布的规范
  • 这会诱使人们编写客户端来解析XML中的所有内容(即使他们不使用它),如果必要的话,删除元素会更加困难

或者,我是否认为向后兼容性错了?这已经是一个解决得很好的问题了吗?客户端是否应该要求特定版本的响应XML?

1 个答案:

答案 0 :(得分:0)

IMO,您应该发送客户端所需的版本以及请求并返回该格式。因为您无论如何都需要计算以前版本的信息,当您知道客户端不会使用它时,不需要臃肿。如果您有一个支持响应代码的xml独立数据结构,您甚至可以将xml创建者重用于旧式响应。

当然,这假设响应文档是动态创建的。否则,XQuery或类似的东西不会完全符合您的要求:仅针对已知元素/值过滤文档吗?