sha256
@sha256

Как в spyne правильно обернуть параметры?

Друзья, всем привет!
Разбираю тестовый пример библиотеки spyne

class HelloWorldService(ServiceBase):
    @rpc(Unicode, _returns=Iterable(Unicode))
    def say_hello(ctx, name):
        for i in range(times):
            yield name

app = Application([HelloWorldService], tns='spyne.examples.hello',
    in_protocol=HttpRpc(validator='soft'),
    out_protocol=JsonDocument()
)

application = WsgiApplication(app)


Получаю ответ:
[
    "Ivan"
]


Какой должен быть код, чтобы передавался так же параметр в качестве описания? см. ниже

[
    "name":"Ivan"
]


Пытаюсь разобраться с типом Complex, см. тут
Вводя дополнительный класс:
class Permission(ComplexModel):
    _type_info = [
        ('application', Unicode),
        ('feature', Unicode),

Но при попытке встроить этот класс в свой скрипт, в качестве ответа получаю null. И никакой структуры.
  • Вопрос задан
  • 355 просмотров
Решения вопроса 1
sha256
@sha256 Автор вопроса
Решение найдено:

Необходимо создать класс:
class MyTestMethodRequest(ComplexModel):
    __namespace__ = MY_NAMESPACE

    MyString = Unicode


И его использовать в качестве ответа

class HelloWorldService(ServiceBase):
    @rpc(Unicode, _returns=MyTestMethodRequest)
    def say_hello(ctx, name):
        for i in range(times):
            return MyMethodResponse(name=name)

app = Application([HelloWorldService], tns='spyne.examples.hello',
    in_protocol=HttpRpc(validator='soft'),
    out_protocol=JsonDocument()
)

application = WsgiApplication(app)
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы