私は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>
SOAP 出力:
<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 を使用しています