问题标签 [webargs]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 使用带有 flask_smorest 和/或 marshmallow 的自定义解析器
我正在使用flask-smorest,基于 Flask/Marshmallow 的 REST API 框架,并且希望能够解析使用axios JavaScript 库发出的请求,特别是对于通过查询字符串传递的数组。
Axios 发送这样的数组:
我需要为此创建一个自定义解析器(另请参阅我创建的票证上的有用响应),因此我能够拼凑出一个基本的解析器来满足我的目的。
但是对于我的生活,我无法弄清楚如何告诉 flask_smorest 或 marshmallow 将此自定义解析器用于我的MethodView
基于 API 的端点。
我也想在我的 . 中创建一个自定义字段Schema
,但我也不知道如何访问查询字符串以便正确解析它。
那么在flask_smorest/marshmallow中为特定类型的查询字符串数组编码集成解析器的最佳方法是什么?
python - Flask、Marshmallow 3 和 webargs use_args 无法解析参数
对于 Flask 1.1.2、marshmallow 3.6.1 和 webargs 6.1.0,我所有的论点总是missing
.
架构:
蓝图.py:
当我 curl 任何值时,limit
它offset
总是使用该default
值。
curl http://localhost:8000/exports?limit=5930
log: "qparams {'limit': 10, 'offset': 0}"}
我希望ValidationError
提高 a ,因为限制应该 > 100。
当我卷曲一个未知参数时,我希望 aValidationError
被提高,因为它是一个未知参数。这也无法按预期工作。
curl http://localhost:8000/exports?lkfjdskl=fkjdsl
返回 200 并且没有qparams
.
我在结合webargs
,Flask
和时做错了marshmallow
什么?
python - 如何使用 webargs 从查询参数中按值解析枚举?
我有下一个枚举:
和架构:
在 Flask 之后,我声明了 GET 方法webargs
:
它失败并出现错误:
我在调试器中检查了它,发现EnumField
调用EStatus(value)
. 问题是我的值是str
类型,因为它来自查询参数。
如何在调用之前EnumField
将其转换为?int
EStatus(value)
python - 使用 webargs 验证 AWS lambda 中的查询字符串参数和请求正文
我试图找出验证使用 AWS API 网关创建并由 Python Lambda 函数支持的 API 的查询字符串参数的方法。API Gateway 可以验证是否存在所需的查询字符串参数。但是,我找不到其他验证的方法,例如确定某个参数的长度是否在某个限制范围内(例如 config_id 至少应为 7 个字符长)。使用 API Gateway 请求验证可以对请求正文进行此类验证。参考这个链接。但是,对于查询字符串参数,仅需要/不需要验证是可能的,因为它不使用任何 json 模式进行验证。
因此,为了克服这个问题,我决定尝试Python 中的 webargs 模块来验证查询字符串参数。它通常用于对使用 Python 框架(如 flask 或 django)创建的 API 进行请求验证。我正在使用核心解析器(请参阅webargs doc),如下所示:
这就是在 lambda 函数中完成验证的方式。但是,只有所需的验证才能正常工作。当我传递长度为 5 的 config_id 时,它不会返回任何错误并在 lambda 函数中继续进行。
这可能出了什么问题?解析器似乎工作,但是,验证功能没有。任何帮助表示赞赏,因为我是新手。此外,是否有更好的方法在 lambda 函数中进行验证,尤其是对于 queryStringParameters?它可以由代码处理,但我们可以有许多参数和许多 API,这使得为所有此类验证编写代码成为一项繁琐的任务。webargs 模块派上用场了。
python - webargs 的字典 vs Marshmallow 数据类模式
该webargs
模块允许将参数模式描述为纯字典或棉花糖数据类模式:
第一个变体看起来更短更快,但我们失去了 IDE 中的语法高亮和类型检查(因为它是 dict),而且它导致更长的调用,即args['field1']
而不是arg.field1
.
您在大型项目中使用哪种变体?在使用第一个或第二个变体时是否有一些最佳实践?
python - flask-apispec 没有使用来自 GET 查询的值填充 kwargs(文档中示例代码的实现)
我使用flask-apispec
withwebargs
来定义简单 API 的类型。我在下面制作了一个最小的示例,它重现了该问题,即kwargs
对象为空。
服务器代码:
简单的客户端脚本:
为什么kwargs
字典是空的?我看不出上面的内容与 flask-apispec 文档中的示例有何不同。
python - 验证 args 时 webargs 出现异常
最近我在使用 webargs(8.0.1) 和 flask-restful(0.3.8) 时遇到了一些问题
当我尝试使用时异常抛出两次cURL http://127.0.0.1:5001/?score=100A
我认为它应该返回带有函数的 jsonfy 错误消息,handle_request_parsing_error
但它只返回 HTTP 500 错误。
希望有人能帮我解决这个问题,非常感谢