分布式的客户端/服务器环境中必然涉及到变更管理,如何维护系统的可扩展性和兼容性?
问题描述:需求是持续变化的,在通常的接口设计中,如何保证服务端XML和JSON表述的变更与现有的客户端保持兼容
解决方案:保持原有的XMl和JSON数据分层结构整体不发生变化,确保客户端按照之前的调用方法可以继续工作
服务端需要把新增的数据元素设计为可选的,以此保持与客户端的兼容性,相对于URI来说,就是URI中添加了新参数时,要继续服务于现有参数,并将新参数视为可选
不要修改删除原有的响应正文表述的数据域
PS:
REST架构风格的最主要驱动是分布性和扩展性。RESTful HTTP接口的设计是由网络因素而非编程语言的绑定驱动的
参考:RESTful web services Cookbook 中文版
ps 后记
这篇文章提到了兼容性设计的重点,对原有设计的扩充和维护是一件很困难的事,因为原有系统还在运行,所以你只能做扩充,不能做改造,改造的风险巨大且未知
这样一来代码结构,数据库设计,等都会出现混乱和复杂。比如代码风格不统一,随意的增加和补充,数据库字段冗余,很多字段不知道是否在实际业务中还在使用,是否在维护
2013-02-02 补充