【问题标题】:Where should data mapping occur?数据映射应该发生在哪里?
【发布时间】:2019-01-02 02:21:37
【问题描述】:

我正在构建一个与肥皂网络服务交互的节点 js 应用程序。对于节点js提供的api,我有一个rest api。为了与soap webservice 交互,我创建了一个单独的服务soapService 来管理交互。在应用程序中,我必须在其余 api 请求和传递给soap webservice 的请求之间进行映射。 我的问题是,谁负责处理映射? 我知道我可以有一个单独的映射服务,它会执行实际的映射。但是,我对使用该 mappingService 的映射会发生在哪里感兴趣?我应该在将请求传递给 soapService 之前映射请求,还是应该由 soapService 处理映射?而倒退呢?当soapService从实际的web服务得到响应时,是否应该使用mappingService来映射请求,然后才将结果返回给调用的api服务?

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

【问题讨论】:

    标签: node.js rest soap architecture dto


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2018-05-26
      • 2013-09-22
      • 2014-03-04
      • 1970-01-01
      • 1970-01-01
      • 2015-12-02
      • 2011-10-22
      • 2021-09-25
      • 1970-01-01
      相关资源
      最近更新 更多