Использование собственного парсера с flask_smorest и / или marshmallow - PullRequest
1 голос
/ 28 мая 2020

Я использую flask -smorest , фреймворк REST API на основе Flask / Marshmallow и хотел бы иметь возможность анализировать запросы, сделанные с помощью ax ios JavaScript библиотека, специально для массивов, передаваемых через строку запроса.

Ax ios отправляет такие массивы:

/api/v1/items/?types[]=cd&types[]=dvd

Для этого мне нужно создать собственный парсер (см. Также полезные ответы на билет, который я создал ), так что я смог сколотить элементарный синтаксический анализатор, который служит моей цели. пользовательский синтаксический анализатор для моих конечных точек на основе MethodView API.

Я также думал о создании настраиваемого поля в моем Schema, но и там я не знаю, как я могу получить доступ к строке запроса, чтобы она может быть правильно проанализирован.

Итак, как лучше всего интегрировать синтаксический анализатор для определенного c типа кодировки массива строк запроса в flask_smorest / marshmallow?

1 Ответ

1 голос
/ 28 мая 2020

Предполагая, что вы создали синтаксический анализатор, как показано в документах webargs , все, что вам нужно сделать, это указать приложению flask -smorest использовать этот настраиваемый анализатор вместо FlaskParser. * 1004 по умолчанию *

Это делается путем переопределения Blueprint и замены ARGUMENTS_PARSER из ArgumentsMixin:

import flask_smorest

class Blueprint(flask_smorest.Blueprint):

    ARGUMENTS_PARSER = CustomParser()
...