依赖于 SOAP API 的服务设计变化很大
Design of a service dependent on SOAP API which changes a lot
我正在重构依赖于 SOAP 服务的服务。遗憾的是,SOAP 服务会定期更改。我的服务使用从 SOAP 的 wsdl 文档生成的 类。没有层将 SOAP 服务中定义的实体与我的逻辑分开。换句话说,SOAP 服务泄漏到我的服务中,它的更改会导致问题。
我想解决这个问题。我正在考虑一种方法,在这种方法中,我围绕生成的 SOAP 客户端创建包装器,这些包装器将符合我定义的接口。包装器将负责:
- 将我的界面to/from转换为来自 SOAP 服务的内容以及代理需要的内容
- 使用包装生成的客户端调用服务
这样我会限制 SOAP 服务中更改的影响,以便只有包装器受到影响。
我认为这是根据“端口和适配器”架构应该如何工作的。这种做法正确吗?我可以做得更好吗?
我认为你的方法完全有效。
I'm considering an approach in which i create wrappers around the generated SOAP clients which would conform to an interface defined by me.
在六边形架构中,您自己定义的接口将是端口和一个adapter 这个端口的实现就是你所说的 wrapper.此 wrapper(即适配器)利用 SOAP 服务与外界通信,并确保它符合您的接口(即端口)。
就面向对象的代码而言,端口本身将是一个接口,而适配器将是一个 class 实现此接口的对象,它依赖于基础结构 - SOAP 客户端。
因此,您的应用程序服务依赖于抽象(端口接口)而不是实现细节(基础设施部分 - 即 SOAP 服务)。
实施此方法时,只需确保您的应用程序层和领域层都不直接依赖于基础设施(即适配器),而是依赖于接口(端口)。
我正在重构依赖于 SOAP 服务的服务。遗憾的是,SOAP 服务会定期更改。我的服务使用从 SOAP 的 wsdl 文档生成的 类。没有层将 SOAP 服务中定义的实体与我的逻辑分开。换句话说,SOAP 服务泄漏到我的服务中,它的更改会导致问题。
我想解决这个问题。我正在考虑一种方法,在这种方法中,我围绕生成的 SOAP 客户端创建包装器,这些包装器将符合我定义的接口。包装器将负责:
- 将我的界面to/from转换为来自 SOAP 服务的内容以及代理需要的内容
- 使用包装生成的客户端调用服务
这样我会限制 SOAP 服务中更改的影响,以便只有包装器受到影响。
我认为这是根据“端口和适配器”架构应该如何工作的。这种做法正确吗?我可以做得更好吗?
我认为你的方法完全有效。
I'm considering an approach in which i create wrappers around the generated SOAP clients which would conform to an interface defined by me.
在六边形架构中,您自己定义的接口将是端口和一个adapter 这个端口的实现就是你所说的 wrapper.此 wrapper(即适配器)利用 SOAP 服务与外界通信,并确保它符合您的接口(即端口)。
就面向对象的代码而言,端口本身将是一个接口,而适配器将是一个 class 实现此接口的对象,它依赖于基础结构 - SOAP 客户端。
因此,您的应用程序服务依赖于抽象(端口接口)而不是实现细节(基础设施部分 - 即 SOAP 服务)。
实施此方法时,只需确保您的应用程序层和领域层都不直接依赖于基础设施(即适配器),而是依赖于接口(端口)。