【问题标题】:Class design with APIRequest and Response使用 APIRequest 和 Response 进行类设计
【发布时间】:2009-03-11 06:50:55
【问题描述】:

我设计了一个为 POST 创建 XML 的类,以便调用第三方 API 的 API 调用。该类具有辅助方法;一个形成 HttpWebRequest,然后一个发送它。我的问题是这样的:

是否应该将响应(最终我将其放入 XMLReader 并对其进行解析以获取值)作为 HttpWebResponse、XMLReader 或什么返回?并且该响应应该由我拥有的 Send HttpWebRequest 方法返回还是简单地设置为正在发送的 APIRequest.cs 类中的一个属性?或者我应该将该 HttpWebResponse 或 XMLReader (如果我决定先将该响应推送到阅读器中)传递给一个完全不同的名为 APIMethodResponse 的类,该类保存响应中返回的值?

我在这里考虑的是 SOLID 和基本的类设计。在处理从我的 APIRequest.cs 类发出的 API 方法调用/请求返回的响应方面,我不确定该采用哪种方式。

注意:APIRequest.cs 类实际上更具体,例如 UpdateCustomerRequest.cs,因为我调用了 API 方法 UpdateCustomer。因此,我为 POST 创建的 XML 是通过一种方法创建的,该方法创建必要的节点和数据以作为 UdpateCustomer 方法调用的 POST 发送

【问题讨论】:

    标签: c# architecture


    【解决方案1】:

    您不应返回 HttpWebResponse。这是您的 API 调用框架内部的,与调用者无关。

    我要么保持基本并返回原始 XML(然后可以根据调用者的要求以多种方式对其进行解析),要么我会一路解析并返回内部的返回值/输出参数。

    请记住,调用者希望尽可能接近地调用 API 方法并获取返回值,而无需处理相关的接线。

    【讨论】:

      【解决方案2】:

      返回一个 XmlReader。您可以使用 XmlReader 执行任何操作 - 加载到 XmlDocument 中,用作 XslCompiledTransform 的输入等。它是 XML API 的最小公分母。

      顺便说一句,你有没有创建过 HttpWebRequest 但没有发送它?

      【讨论】:

        猜你喜欢
        • 2014-11-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-02-20
        • 1970-01-01
        • 1970-01-01
        • 2015-06-21
        • 2020-09-10
        相关资源
        最近更新 更多