数据映射应该在哪里发生?

时间:2018-07-25 09:52:43

标签: node.js rest soap architecture dto

我正在构建一个与Soap Web服务交互的Node js应用程序。对于api,节点js提供了一个rest api。为了与soap webservice进行交互,我创建了一个单独的服务 soapService 来管理交互。在应用程序中,我必须在其余api请求与传递给soap webservice的请求之间进行映射。 我的问题是,谁负责处理映射? 我知道我可以有一个单独的mappingService,它将执行实际的映射。但是,我有兴趣使用该mappingService进行映射的地方在哪里?我应该在将请求传递给soapService之前将其映射,还是soapService应该处理该映射?那倒退呢?当soapService从实际的Web服务获得响应时,是否应使用mappingService映射请求,并且仅在此之后将结果返回给调用的api服务?

我听说过一条规则,如果您不对映射数据做任何事情(除了将其传递到下面的一层之外),那么这根本就不是您所关心的。但是另一方面,下面的服务根本不关心其余的api格式,它只想使用soap web服务格式。由于映射是种肮脏的工作,因此很容易将其放置在较低层,因此soapService将处理该映射。这样,更高抽象的api rest服务就不必处理任何映射。

1 个答案:

答案 0 :(得分:0)

接收服务应发布一个端点,该端点准确地表示执行业务逻辑所需的内容。如果呼叫者以其他方式存储数据,则取决于呼叫者将其数据映射为正确的格式。接收服务发布符合呼叫者数据结构的终结点会产生误导。当第二个呼叫者需要相同的业务逻辑时会发生什么?您将必须在接收系统上创建与第二个呼叫者规范匹配的第二个端点。

相关问题