Web方法返回值的良好设计模式是什么?

时间:2020-03-05 18:46:28  来源:igfitidea点击:

在对Web服务进行编码时,如何构造返回值?我们如何处理错误情况(预期的和意外的)?如果要返回简单的东西(如int),是返回它还是将其嵌入更复杂的对象中?一项服务中的所有Web方法都返回单个类的实例,还是为每个方法创建自定义返回值类?

解决方案

回答

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

类似于AddCustomerRequest之类的东西,它将返回AddCustomerResponse。

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

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

回答

+1为Ben的答案。

另外,我建议考虑通用响应允许多个错误/警告项,以使答复尽可能全面和可行。 (我们是否要使用在出现第一条错误消息后停止运行的编译器,或者是尽可能告诉编译器?)

回答

如果我们使用的是SOAP Web服务,则SOAP错误是返回错误详细信息的标准方法,其中错误消息可以返回我们喜欢的任何其他详细信息。

回答

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