更改 SOAP 接口并弃用 Java 中的 Web 方法

发布于 2025-01-06 04:00:52 字数 267 浏览 1 评论 0原文

我的团队正在使用soap 开发java 中的服务层和dot-net 中的GUI。 GUI 开发人员总是感到不安,因为服务层偶尔会更改 Web 服务接口。

为了让 GUI 用户满意,我们现在正在编写与现有方法并存的新方法,而不是废弃原来的 Web 方法。由于我们的肥皂界面设计仍在完善中,这变得越来越混乱,肯定有更好的方法!有什么建议吗?

此外,有时我们想要弃用 Web 服务方法 - 是否有 Java 注释可以执行此操作(会出现在 WSDL 中的注释)?

感谢您的任何建议

My team is developing a service layer in java and a GUI in dot-net, using soap. The GUI developers keep getting upset because the service layer occasionally change the web service interface.

To keep the GUI chaps happy, rather than trashing the original web methods we are now writing new ones that live alongside the existing ones. Since our soap interface design is still being refined this is getting messy, surely there is a better way! Any suggestions?

Further, there are times when we want to deprecate a web service method - is there a java annotation for doing this (one that would show up in the WSDL)?

Thanks for any suggestions

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

过期情话 2025-01-13 04:00:52

据我所知,没有这样的弃用注释。这是我通常使用的一般模式:

  • 实现 SOAP api,将版本号 (v1) 放入 WSDL 名称或路径
  • 编写值得更新的 SOAP api 的新(或改进)应用程序代码
  • 实现全新版本的 SOAP在 v1 代码旁边具有新版本号 (v2) 的 api,但由相同的域类支持
  • 更改 v1 Web 服务的实现以执行迁移并(只要可能)调用 v2 服务的适当方法
  • 通知客户端它们应该开始使用 v2 而不是 v1
  • 等待
  • 如果您处于大型企业环境中,请等待更长时间;-)
  • 一旦没有人再使用 v1(通过日志和与用户的对话验证这一点),请删除 v1 接口

仅此方法当您的 Web 服务代码和实际应用程序代码之间有很好的分离时,效果非常好。将 Web 服务代码视为表示层会有所帮助。

There is no such deprecation annotation that I know of. This is the general pattern that I normally use:

  • Implement a SOAP api putting a version number (v1) in either the WSDL name or path
  • Write new (or improved) app code that deserves an updated SOAP api
  • Implement a completely new version of the SOAP api with a new version number (v2) beside the v1 code, but backed by the same domain classes
  • Change the implementation of the v1 web service to perform migration and (whenever possible) call the appropriate method of the v2 service
  • Notify clients that they should start using v2 instead of v1
  • Wait
  • If you're in a big enterprise environment, wait even longer ;-)
  • Once nobody is using v1 any more (verify this with logs, and conversations with users), remove the v1 interface

This approach only works really well when you have good separation between your web service code and your actual application code. It helps to think of web service code as a presentation layer.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文