我正在使用Ruby on Rails开发一些SOAP Web服务,并考虑如何处理泛型故障。这些通用错误适用于服务中的所有方法,包括以下内容: -
我可以在调用相关方法之前拦截控制器中的这些错误并做出适当的响应。我的问题是从客户的角度来看哪个实施最容易管理。我处理这些错误的选项似乎如下。
选项三似乎是最好的解决方案,但也是最容易实现的,因为ROR中的Web服务实现使我无法以通用方式实现它,并且每个方法都负责检查检查和呈现的结果适当的回应。不可否认,这将是一个单一的函数调用,并在失败时返回,但它依赖开发人员记住这样做,因为我们添加了更多选项。
我很欣赏大多数ROR开发人员会说这应该作为REST服务实现,我同意,事实上我们已经有REST服务来实现这一点,但SOAP在企业界的传播,以及令人印象深刻的工具支持手段我们必须提供SOAP服务以保持竞争力。
根据您的经验,客户端要处理的最简单的实现是什么,这取决于客户端进程的库/语言。
答案 0 :(得分:0)
SoapFault是表示错误的首选方式。 SoapFaults可以在其<detail>
元素中包含其他信息。
SoapFault优于某些状态元素的优点是调用者可以使用标准异常处理,而不是检查某些状态字段。