使用带有 flask_smorest and/or marshmallow 的自定义解析器
Using a custom parser with flask_smorest and/or marshmallow
我正在使用 flask-smorest, the Flask/Marshmallow-based REST API framework and would like to be able to parse requests made with the axios JavaScript 库,专门用于通过查询字符串传递的数组。
Axios 发送这样的数组:
/api/v1/items/?types[]=cd&types[]=dvd
我需要创建一个 custom parser for this (see also the helpful responses on the ticket I created) 以便我能够拼凑出一个基本的解析器来满足我的目的。
但对于我来说,我无法弄清楚如何告诉 flask_smorest 或 marshmallow 为我的 API 基于 MethodView
的端点使用这个自定义解析器.
我也在考虑在我的 Schema
中创建自定义字段,但我也不知道如何访问查询字符串以便正确解析它。
那么在 flask_smorest/marshmallow 中为特定类型的查询字符串数组编码集成解析器的最佳方法是什么?
假设您创建了一个如 webargs docs 中所示的解析器,您需要做的就是告诉您的 flask-smorest 应用程序使用此自定义解析器代替默认 FlaskParser
.
这是通过从 ArgumentsMixin
覆盖 Blueprint
和覆盖 ARGUMENTS_PARSER
来完成的:
import flask_smorest
class Blueprint(flask_smorest.Blueprint):
ARGUMENTS_PARSER = CustomParser()
我正在使用 flask-smorest, the Flask/Marshmallow-based REST API framework and would like to be able to parse requests made with the axios JavaScript 库,专门用于通过查询字符串传递的数组。
Axios 发送这样的数组:
/api/v1/items/?types[]=cd&types[]=dvd
我需要创建一个 custom parser for this (see also the helpful responses on the ticket I created) 以便我能够拼凑出一个基本的解析器来满足我的目的。
但对于我来说,我无法弄清楚如何告诉 flask_smorest 或 marshmallow 为我的 API 基于 MethodView
的端点使用这个自定义解析器.
我也在考虑在我的 Schema
中创建自定义字段,但我也不知道如何访问查询字符串以便正确解析它。
那么在 flask_smorest/marshmallow 中为特定类型的查询字符串数组编码集成解析器的最佳方法是什么?
假设您创建了一个如 webargs docs 中所示的解析器,您需要做的就是告诉您的 flask-smorest 应用程序使用此自定义解析器代替默认 FlaskParser
.
这是通过从 ArgumentsMixin
覆盖 Blueprint
和覆盖 ARGUMENTS_PARSER
来完成的:
import flask_smorest
class Blueprint(flask_smorest.Blueprint):
ARGUMENTS_PARSER = CustomParser()