知识卡片

把请求结构、调用行为和返回格式捆绑进同一份协议描述,会让后端无法独立演化

专业/工作

内容

SOAP/WSDL体系的初衷是”异步、松耦合、能在不影响客户端的前提下升级服务”,但WSDL把请求的结构、这次调用具体做什么、以及返回类型的格式,全都绑定进同一份协议描述里——结果是想改变后台某个端口的实现,几乎必然影响到所有已经按这份协议编码的客户端,恰恰违背了最初想要的松耦合。这提示一个更一般的架构判断:一个接口设计得好不好,可以用”我能不能在不通知调用方的前提下替换掉背后的实现”来检验——如果协议本身把太多具体细节焊死在契约里,无论这份契约写得多详尽,都换不来真正的解耦。

参考来源

《架构之美》第5章《面向资源的架构:在Web中》