【问题标题】:What's a good design pattern for web method return values?Web 方法返回值的良好设计模式是什么?
【发布时间】:2008-09-02 14:00:09
【问题描述】:

在编写 Web 服务代码时,您如何构建返回值?您如何处理错误情况(预期的和意外的)?如果您要返回像 int 这样简单的东西,您是直接返回它,还是将它嵌入到更复杂的对象中?一个服务中的所有 Web 方法是否都返回单个类的实例,还是为每个方法创建一个自定义返回值类?

【问题讨论】:

    标签: web-services soap wsdl


    【解决方案1】:

    我喜欢请求/响应对象模式,您可以将参数封装到单个 [Operation]Request 类中,该类具有简单的公共属性。

    类似于 AddCustomerRequest,它将返回 AddCustomerResponse。

    响应可以包括有关操作成功/失败的信息、UI 可能使用的任何消息、可能是添加的客户的 ID,例如。

    另一个好的模式是让这些都派生自一个简单的 IMessage 接口,您的一般端点类似于 Process(params IMessage[] messages)... 这样您就可以在同一个 Web 中传递多个操作请求。

    【讨论】:

      【解决方案2】:

      Ben 的回答 +1。

      此外,我建议考虑通用响应允许多个错误/警告项,以使回复尽可能全面和可操作。 (您想使用在第一条错误消息后停止的编译器,还是尽可能多地告诉您的编译器?)

      【讨论】:

        【解决方案3】:

        如果您使用的是 SOAP Web 服务,那么 SOAP faults 是返回错误详细信息的标准方式,错误消息可以返回您喜欢的任何其他详细信息。

        【讨论】:

          【解决方案4】:

          Soap 故障是调用应用程序是 Soap 客户端的标准做法。在某些情况下,例如使用 XMLHTTP 的 COM 客户端,Soap 被解析为 XML,并且无法轻松处理 Soap 故障。还不能投票,但要为@Ben Scheirman 再 +1。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2022-09-30
            • 2018-10-11
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多