Eve:在响应中抑制验证错误详细信息

时间:2018-06-05 16:43:12

标签: python eve

为了保护我的公共Eve REST API,我想避免像'{"_status": "ERR", "_error": {"code": 422, "message": "Insertion failure: 1 document(s) contain(s) error(s)"}, "_issues": {"magicfield": "requiredfield"}}'这样的回复。

相反,我只想返回状态代码401,其中包含一个空的响应主体(或至少一个空的“_issues”字段)。有没有办法做到这一点?身份验证/授权不是一种选择,因为它是公共注册资源(允许公共方法POST)。

我已经将状态代码更改为401(VALIDATION_ERROR_STATUS),但仍然存在特定的验证错误,因此攻击者可以根据验证错误“修复”他的请求。

目的是仅允许具有一些魔术字段值的请求(经​​过特定长度验证等)并禁止对该资源的所有其他请求。

1 个答案:

答案 0 :(得分:1)

你有没有看过event hooks?尝试这样的事情:

def my_callback(resource, request, response):
    data = response.json
    del(data['_issues'])
    del(data['_error'])
    response.set_data(json.dumps(data))

app = Eve()
app.on_post_POST += my_callback
app.run