很快我将不得不实施一个公共API(Web API)。其中一个请求是我们需要提供不同的方法来做同样的事情(例如,REST和SOAP),我最初的方法就是这样。
为REST创建一个Controller 为SOAP构建一个Controller
使用将处理来自REST和SOAP接口的请求的公共Facade类,Facade类将负责访问系统的内部(直接或间接,可以使用圆顶DAO等)。
代码将用Java编写,很可能会在其他技术中使用Spring-MVC。
这里的问题是。你能理解这个吗?太荒谬了吗?你觉得这里有过度建筑吗?任何建议/经验/最佳实践?
感谢您的时间:)
答案 0 :(得分:1)
这对你有意义吗?
是
太荒谬了吗?
没有。
你觉得这里有过度建筑吗?
没有
任何建议/经验/最佳实践?
您可以找到描述您正在做的事情的设计模式。例如,GoF adapter pattern说:“在计算机编程中,适配器模式(通常称为包装模式或简称包装器)是一种设计模式,它将类的一个接口转换为兼容接口。”您有两个接口专用(适配器)的App Controller(适配器):REST和SOAP。
答案 1 :(得分:1)
你的方法对我有意义。 Spring MVC本身可以处理REST端点,接受并返回XML和/或JSON。对于SOAP,您需要一个额外的框架,如Spring-WS或Apache CXF。
使用MVC模式时,最好通过将任何实际工作委托给注入控制器的其他bean来使控制器尽可能小。这些其他bean通常遵循服务或存储库的类型(使用域驱动设计术语)。可以跨REST和SOAP端点重用这些服务和存储库bean。我认为这就是你在第三段中的意思,如果是这样,那么你就是在正确的轨道上。