Я использую Spyne, и он работает хорошо. Я хотел бы иметь возможность использовать значения по умолчанию для моих дополнительных параметров. Насколько я понимаю, каждый тип можно использовать в своей обязательной форме или нет: я прав?
Вот мой сервис:
from spyne.model.primitive import Unicode, Boolean
@rpc(Unicode, _returns = Unicode)
def optional_parameter(ctx, input = "default value")
return input
Когда я вызываю его без параметра, он ничего не возвращает, точно так же, как если бы я вызывал его с '' (пустая строка).
МЫЛЬНЫЙ ВВОД (из 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