Web方法返回值的优秀设计模式是什么?

时间:2008-09-02 14:00:09

标签: web-services soap wsdl

编写Web服务时,如何构建返回值?你如何处理错误条件(预期和意外的错误)?如果你返回像int这样简单的东西,你只是将它返回,或者将它嵌入到一个更复杂的对象中吗?一个服务中的所有Web方法是返回单个类的实例,还是为每个方法创建自定义返回值类?

4 个答案:

答案 0 :(得分:8)

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

类似AddCustomerRequest的东西,它会返回AddCustomerResponse。

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

另一个好的模式是使这些都来自一个简单的IMessage接口,其中你的一般终点类似于Process(params IMessage []消息)......这样你就可以在同一个web中传递多个操作请求。

答案 1 :(得分:1)

为Ben的回答+1。

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

答案 2 :(得分:1)

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

答案 3 :(得分:0)

肥皂故障是一种标准做法,其中调用应用程序是Soap客户端。有些情况,例如使用XMLHTTP的COM客户端,其中Soap被解析为XML并且Soap故障不容易处理。不能投票,但@Ben Scheirman还有+1。