Десериализовать список верхнего уровня с помощью дуршлага в пирамиде с помощью карниза

Учитывая запрос POST с Content-Type: application/json и тело ["foo", "bar"] Как создать схему Colander в Pyramid, используя Cornice для десериализации этого.

Вот что я придумал:

class SimpleList(colander.SequenceSchema):
    items = colander.SchemaNode(colander.String())

И это прекрасно работает в CLI с ванильным дуршлагом. Тем не менее, когда я использую его на Cornice Service, примерно так:

@simple_list_service.post(schema=SimpleList)
def simple_list_post(request):
    print(request.validated)

Я получаю это:

{"errors": [{"name": "items", "description": "items is missing", "location": "body"}], "status": "error"}

Какие-либо предложения?

Спасибо!

1 ответ

Текущая версия карниза позволяет только colander.MappingSchema для проверки схемы. Все остальное выдает исключение (очевидно, вы сделали это до того, как это изменение было сделано по мере продвижения).

Поэтому, если что-то не изменится, вы не сможете проверить список в качестве входных данных.

Другие вопросы по тегам