我正在使用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中为特定类型的查询字符串数组编码集成解析器的最佳方法是什么?
答案 0 :(得分:1)
假设您已经创建了webargs docs中所示的解析器,那么您要做的就是告诉flask-smorest应用使用此自定义解析器代替默认的FlaskParser
。
这是通过从Blueprint
覆盖ARGUMENTS_PARSER
并覆盖ArgumentsMixin
来完成的:
import flask_smorest
class Blueprint(flask_smorest.Blueprint):
ARGUMENTS_PARSER = CustomParser()