我正在使用 python-eve 开发一个 API 并喜欢它。到目前为止,我已经能够使用各种可用的钩子来做所有事情。但是,现在我想支持“size”查询参数作为“max_results”的别名(出于向后兼容性的原因,如果这很重要)。
我试图创建 on_pre_GET 钩子,但发现 request.args 是不可修改的
def pre_get_api_sugar(resource, request, lookup):
"""Event that adds syntactic sugar to the API calls.
"""
# Support "size" as alias for "max_results"
args = request.args
if 'max_results' not in args and 'size' in args:
args['max_results'] = args['size']
app.on_pre_GET += pre_get_api_sugar
这给TypeError: 'ImmutableMultiDict' objects are immutable
似乎操纵查询参数来自定义 API 应该是可行的,如果不容易的话。到目前为止,我还没有看到这样做的方法。我应该使用 Flask 工具吗?我错过了什么?
谢谢!