在开发过程中考虑以下场景 -
但有时当我们忘记这样做时,我们必须调试整个Web应用程序,最终发现服务合同已经发生变化。
我们可以在调用服务之前在运行时检测过时的代理。
答案 0 :(得分:2)
最佳做法是对您的服务进行版本设置,以允许客户端与其熟悉的界面连接。通常,您可以在线保留一个或两个旧版本,并将任何重大更改添加为服务的up-rev。 (例如/myservice/2012/01
然后/myservice/2012/06
)。然后,在创建新版本时,您可以弃用以前的版本。
第二种做法是实现一个GetVersion()
(或类似)方法,您可以调用它并用于测试目的。初始调用该服务并查看它正在运行的内容,然后针对本地存储的版本号进行测试,看看是否存在冲突。
有关详细信息,Yoav Helfman上有一篇很好的文章介绍了处理版本更改和更新。
答案 1 :(得分:1)
我已发布此类事件before。
基本上,管理这种情况的一种方法是要求服务使用者声明他们对每个请求期望的服务接口版本。
然后在您的服务上公开一个类型的错误合同,以便您识别服务版本不匹配。这意味着消费者可以相应地捕获并处理这个特定问题。