我正在使用 Spyne,它运行良好。我希望能够为我的可选参数使用默认值。据我了解,每种类型都可以在其强制形式上使用:我是对的吗?
这是我的服务:
from spyne.model.primitive import Unicode, Boolean
@rpc(Unicode, _returns = Unicode)
def optional_parameter(ctx, input = "default value")
return input
当我不带参数调用它时,它什么也不返回,就像我用''(空字符串)调用一样。
SOAP 输入(来自 SoapUI):
<soapenv:Body>
<spy:optional_parameter>
<!--Optional:-->
<spy:input/>
</spy:optional_parameter>
</soapenv:Body>
肥皂输出:
<senv:Body>
<tns:optional_parameterResponse>
<tns:optional_parameterResult/>
</tns:optional_parameterResponse>
</senv:Body>
使用布尔值是最糟糕的,这是另一项服务:
@rpc(Boolean, _returns = Boolean)
def optional_parameter_second(ctx, input = False)
return input
在那里,当我使用 SoapUI 调用我的服务时,我收到以下错误:
输入请求:
<soapenv:Body>
<spy:optional_parameter>
<!--Optional:-->
<spy:input/>
</spy:optional_parameter>
</soapenv:Body>
输出:
<senv:Fault>
<faultcode>senv:Client.SchemaValidationError</faultcode>
<faultstring>:10:0:ERROR:SCHEMASV:SCHEMAV_CVC_DATATYPE_VALID_1_2_1: Element '{spyne.examples.hello}input': '' is not a valid value of the atomic type 'xs:boolean'.</faultstring>
<faultactor/>
</senv:Fault>
你有什么想法可以帮助我吗?
我正在使用 Spyne 2.11.0