我们在生产环境中有多个版本的Web服务(包括REST和SOAP),并且每个版本的编号都越来越大。Web服务版本控制:是ESB矫枉过正?
在版本之间,可能会对请求和响应进行较小的更改(通常是添加新字段)。
如果我们要退休旧版本,我们如何继续为旧版本提供服务?
可能的解决方案的一个方面涉及创建“虚拟端点”,以将对先前版本的请求路由到相同服务的新版本。因此,/ v1/customer/1的请求映射到/ v2/customer/1。我们正在使用Mashery,通过它可以很容易地完成。
我们还希望将转换规则应用于请求和响应,以生成符合旧合同的XML和JSON响应。
总而言之,我们需要将路由和转换规则应用于所有传入消息和响应。 ESB是否过分矫枉过正?我们的标准并不完全符合http://blogs.mulesoft.org/to-esb-or-not-to-esb/中列出的标准。有一个更简单的解决方案来解决这个问题吗?一个不需要修改我们的代码来实现请求和响应的版本控制?
我喜欢做飞行员的想法。如果运行太困难,那么我可以排除使用该特定框架。应该有足够轻量级来支持我们的用例,但不会阻碍。 – 2011-04-16 13:49:19