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