Web services WCF web服务在内部调用第三方服务

Web services WCF web服务在内部调用第三方服务,web-services,wcf,proxy-classes,Web Services,Wcf,Proxy Classes,我的项目当前的目标是为所有数据检索创建一站式服务,无论是来自服务还是数据库。因此,我们使用Repository模式创建了一个WCF解决方案,该模式向调用客户端公开方法,并在内部调用第三方服务或DB来获取数据 当我们从第三方API获取数据时,数据在代理类中返回,我们碰巧处理了一个具有许多嵌套类和许多属性的大对象。在上述场景中,最好的做法是: 由于这些代理类对于我的情况来说非常重要,在整个项目中使用代理类并返回代理对象 创建本地业务对象,将第三方业务对象解析为本地对象,并返回我的本地对象: publ

我的项目当前的目标是为所有数据检索创建一站式服务,无论是来自服务还是数据库。因此,我们使用Repository模式创建了一个WCF解决方案,该模式向调用客户端公开方法,并在内部调用第三方服务或DB来获取数据

当我们从第三方API获取数据时,数据在代理类中返回,我们碰巧处理了一个具有许多嵌套类和许多属性的大对象。在上述场景中,最好的做法是:

  • 由于这些代理类对于我的情况来说非常重要,在整个项目中使用代理类并返回代理对象
  • 创建本地业务对象,将第三方业务对象解析为本地对象,并返回我的本地对象:

    public class ThirdPartyRepository
        {
            public MyData GetData()
            {
                //Call third party service method
                ThirdPartyProxyClass proxyClass = ThirdPartyServiceReference.GetData();
    
                //Parse object to my object
                MyData data = new MyData() {
                  //Parse properties
                  ID = proxyClass.ID
                };
    
                return data;
            }
        }
    

  • 您正在实现适配器模式。在这种情况下,最好有自己的业务对象来将消费者与后端回购分离。这样,如果某个外部服务更改了API,那么只有一个地方必须更改代码。您还可以完全控制返回数据的内容和方式