【发布时间】:2012-01-05 22:38:27
【问题描述】:
我目前正在编写如下 API 的规范:
- 客户端使用零个或多个 HTTP 参数向特定 URL 发出 HTTPS 帖子
- 服务器响应一个简短的 XML 文档
正在传输的数据非常轻。大多数响应将小于 1k,最大的只有 10k。
向后兼容性很重要。我希望旧客户端继续在服务器的升级版本上正常工作。
这是我想告诉客户的:-
- 我希望客户端能够读取 XML,但只访问它需要处理的那些元素。
- 在服务器升级时,可以随时将其他元素或属性添加到 XML 文档中。客户应该跳过他们不知道的任何事情。
这样即使现在在响应中返回了附加信息,旧客户端也可以继续工作。 (从 XML 中删除元素显然更加困难,并且需要一些弃用过程)。
记录返回的 XML 的最佳格式是什么?
我担心在本文档中使用正式语言(例如 XSD):
- 添加额外的属性或元素意味着 XML 不符合之前发布的规范
- 这会诱使编写客户端的人解析 XML 中的所有内容(即使他们不使用它),从而在必要时更难删除元素
或者,我是否在考虑向后兼容性错误?这是一个很好解决的问题吗?客户端是否应该请求特定版本的响应 XML?
【问题讨论】:
标签: xml api documentation backwards-compatibility