【发布时间】:2008-09-02 14:00:09
【问题描述】:
在编写 Web 服务代码时,您如何构建返回值?您如何处理错误情况(预期的和意外的)?如果您要返回像 int 这样简单的东西,您是直接返回它,还是将它嵌入到更复杂的对象中?一个服务中的所有 Web 方法是否都返回单个类的实例,还是为每个方法创建一个自定义返回值类?
【问题讨论】:
标签: web-services soap wsdl
在编写 Web 服务代码时,您如何构建返回值?您如何处理错误情况(预期的和意外的)?如果您要返回像 int 这样简单的东西,您是直接返回它,还是将它嵌入到更复杂的对象中?一个服务中的所有 Web 方法是否都返回单个类的实例,还是为每个方法创建一个自定义返回值类?
【问题讨论】:
标签: web-services soap wsdl
我喜欢请求/响应对象模式,您可以将参数封装到单个 [Operation]Request 类中,该类具有简单的公共属性。
类似于 AddCustomerRequest,它将返回 AddCustomerResponse。
响应可以包括有关操作成功/失败的信息、UI 可能使用的任何消息、可能是添加的客户的 ID,例如。
另一个好的模式是让这些都派生自一个简单的 IMessage 接口,您的一般端点类似于 Process(params IMessage[] messages)... 这样您就可以在同一个 Web 中传递多个操作请求。
【讨论】:
Ben 的回答 +1。
此外,我建议考虑通用响应允许多个错误/警告项,以使回复尽可能全面和可操作。 (您想使用在第一条错误消息后停止的编译器,还是尽可能多地告诉您的编译器?)
【讨论】:
如果您使用的是 SOAP Web 服务,那么 SOAP faults 是返回错误详细信息的标准方式,错误消息可以返回您喜欢的任何其他详细信息。
【讨论】:
Soap 故障是调用应用程序是 Soap 客户端的标准做法。在某些情况下,例如使用 XMLHTTP 的 COM 客户端,Soap 被解析为 XML,并且无法轻松处理 Soap 故障。还不能投票,但要为@Ben Scheirman 再 +1。
【讨论】: