【发布时间】:2015-02-23 10:00:15
【问题描述】:
Spyne manual 指出使用 Spyne 创建 SOAP 错误的正确方法是引发 spyne.model.fault.Fault(或您自己的子类)的实例:
@add_metaclass(ComplexModelMeta)
class Fault(ComplexModelBase, Exception):
# ...
我试图理解为什么它是ComplexModelBase 的子类。我最初的假设是,我在我的 Fault 子类中声明了我想要进入 SOAP Fault 的 <detail> 元素的元素,如下所示:
class MyApplicationError(Fault):
__namespace__ = 'http://myapplication.com/ns'
_type_info = [
('reason', Unicode),
]
但是,当实际引发此异常时,看起来我必须将一个普通的 dict 传递给构造函数的 detail 参数。
用结构化数据集填充detail 的最佳做法是什么?我什至在我的Fault 子类中声明这个结构吗?
如果是,我该如何填写?如果不是,为什么Fault 子类ComplexModelBase?
【问题讨论】: