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. И никакой структуры.
  • Вопрос задан
  • 100 просмотров
Решения вопроса 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)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
YLab Тольятти
от 90 000 до 150 000 руб.
от 60 000 до 120 000 руб.
16 июл. 2019, в 03:05
15000 руб./за проект
16 июл. 2019, в 02:57
5000 руб./за проект
16 июл. 2019, в 00:49
15000 руб./за проект