即使验证失败,棉花糖序列化错误也是空的

我将棉花糖添加到我的 Python Web 服务中,主要是为了我可以使用模式生成 OpenAPI 文档,但我也希望对我的 API 响应序列化进行错误检查。我已经阅读了相关文档,但我不明白为什么在序列化不完整的对象时看不到错误。


例如,使用以下架构:


class UserResponse(Schema):

    user = fields.Integer(required=True)

    email = fields.Email(required=True)

    name = fields.String(required=True)

    role = fields.String(required=True)


    class Meta:

        strict = True


schema = UserResponse()

验证按预期工作:


>>> schema.validate({'user': 1})

ValidationError: {'email': ['Missing data for required field.'], 'role': ['Missing data for required field.'], 'name': ['Missing data for required field.']}

但是序列化返回一个空的错误列表:


>>> schema.dump({'user':1})

MarshalResult(data={'user': 1}, errors={})

这是它应该如何工作?如果序列化对象缺少必填字段,我希望返回错误。


慕姐8265434
浏览 202回答 1
1回答

慕勒3428872

按照设计,在棉花糖中,验证仅在反序列化时执行。看到这个问题。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python