9

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

4

4 回答 4

8

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

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

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

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

于 2008-09-02T14:03:08.163 回答
1

+1为本的回答。

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

于 2008-09-02T14:08:20.180 回答
1

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

于 2008-09-02T14:18:09.780 回答
0

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

于 2008-09-16T13:37:26.873 回答