gpt4 book ai didi

c# - 设计 C# SOAP API 客户端/包装器

转载 作者:行者123 更新时间:2023-11-30 17:07:10 25 4
gpt4 key购买 nike

背景
我正在使用 C# 连接 SOAP web 服务。我在 Visual Studio 中工作,并已成功设置服务引用,可以在我的代码中使用 Web 服务。

考虑到 C# 作为一种语言的强大功能,我的问题与“如何最好地”设计 API 的客户端/包装器有关。

中央“请求”类
我想创建一个整体类来处理对服务的请求,从而处理 API 特定错误的所有各种排列(有很多),并优雅地降级。此类也可能是 API 客户端的“ Controller ”,它还提供内部调用与外部世界/代码之间的整体接口(interface)。

然后我注意到每个 API 调用需要并可以返回的数据类型种类繁多。当然,这意味着这种“请求”功能不能被通用处理(并且必须在每种特定类型的请求中实现 - 例如身份验证、车辆位置、工作/订单)?

或者如果可以的话,C# 作为一种语言如何帮助我以抽象的方式处理类型?

一如既往,感谢您抽出宝贵时间阅读并提供任何建议。

最佳答案

这个问题在细节上有点模糊,但我会尝试提供一些建议。

首先,我认为您在外部 API 上创建包装器是明智的。我将使用外部电子邮件提供商的示例来尝试回答您的问题。

假设我们有一个第三方电子邮件 API,我们想围绕它做一个包装。

我会首先制作一个包装器,它的行为方式与我期望的电子邮件 API 的工作方式相同。应该有这样的方法:


public EmailResponse SendEmail(EmailRequest request) { }
public User GetUser(string email) { }
public void OptOut(string email) { }

我首先设计我作为客户认为既适用于域又易于使用的内容。

然后您实现直接映射到第三方 API 的包装器接口(interface)。在上面的示例中,可能需要两次外部 API 调用才能发送电子邮件,但使用您的包装器的人不会知道这一点。

在我看来,如果你将它们与特定的实现绑定(bind)得太紧密,那么包装器就毫无值(value)。

C# 有大量的语言特性使这种方法成为可能,但我认为只使用一个简单的接口(interface)就可以满足您的需求。无需让它比现在更难。

关于c# - 设计 C# SOAP API 客户端/包装器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14797358/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com