将自定义解析器与flask_smorest和/或棉花糖一起使用

时间:2020-05-28 06:58:09

标签: python flask marshmallow webargs

我正在使用flask-smorest,这是基于Flask / Marshmallow的REST API框架,并且希望能够解析使用axios JavaScript库发出的请求,特别是对于通过查询字符串传递的数组。

Axios发送这样的数组:

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

为此,我需要创建一个custom parser(另请参见ticket I created上的有用答复),以便能够将符合我目的的基本解析器拼凑在一起。

但是对于我一生来说,我不知道如何告诉flask_smorest或棉花糖将该自定义解析器用于基于API的MethodView端点。

我还考虑在Schema中创建一个自定义字段,但是我也不知道如何访问查询字符串,以便可以正确解析它。

那么在flask_smorest / marshmallow中为特定类型的查询字符串数组编码集成解析器的最佳方法是什么?

1 个答案:

答案 0 :(得分:1)

假设您已经创建了webargs docs中所示的解析器,那么您要做的就是告诉flask-smorest应用使用此自定义解析器代替默认的FlaskParser

这是通过从Blueprint覆盖ARGUMENTS_PARSER并覆盖ArgumentsMixin来完成的:

import flask_smorest

class Blueprint(flask_smorest.Blueprint):

    ARGUMENTS_PARSER = CustomParser()