0

很快我将不得不实现一个公共 API(Web API)。其中一个请求是我们需要提供不同的方法来做同样的事情(例如,REST 和 SOAP),我最初的方法是这样的。

为 REST 创建一个控制器 为 SOAP 创建一个控制器

使用一个通用的 Facade 类来处理来自 REST 和 SOAP 接口的请求,Facade 类将负责访问系统的内部(直接或间接地,可以使用圆顶 DAO……等等)。

代码将用 Java 编写,很可能会使用 Spring-MVC 以及其他技术。

这里的问题是。你能理解这个吗?是不是太荒谬了?你觉得这里有什么过度架构吗?有什么建议/经验/最佳实践吗?

谢谢你的时间 :)

4

2 回答 2

1

你能理解这个吗?

是的。

是不是太荒谬了?

不。

你觉得这里有什么过度架构吗?

不。

有什么建议/经验/最佳实践吗?

您可以找到描述您正在做什么的设计模式。例如,GoF 适配器模式说:“在计算机编程中,适配器模式(通常称为包装器模式或简称为包装器)是一种将类的一个接口转换为兼容接口的设计模式。” 您有两个接口中专用的应用控制器(适配器)(适配器):REST 和 SOAP。

于 2012-04-19T04:59:42.487 回答
1

你的方法对我来说很有意义。Spring MVC 自己可以处理 REST 端点,接受和返回 XML 和/或 JSON。对于 SOAP,您将需要一个额外的框架,如Spring-WSApache CXF

使用 MVC 模式时,最好通过将任何实际工作委托给注入控制器的其他 bean 来使控制器尽可能小。这些其他 bean 通常遵循服务或存储库原型(使用领域驱动设计术语)。这些 Service 和 Repository bean 可以跨 REST 和 SOAP 端点重用。我认为这就是您在第三段中的意思,如果是这样,那么您就在正确的轨道上。

于 2012-04-20T20:16:03.270 回答