2015-09-16 13 views
1

看來,我可以讓GET請求,夏娃和使用?where查詢在我的過濾參數是無效的(他們不把我的資源模式的驗證規則)在Python EVE我如何驗證where子句

似乎我甚至可以發佈一個where查詢,該屬性甚至不存在於資源模式中。到目前爲止,我得到一個空的列表(當然,因爲沒有與這些錯誤的where過濾器的有效匹配),但有沒有辦法拒絕請求,直接,抱怨不正確的參數或什麼... ... ?

謝謝!

回答

0

您應該看看Event hooks 在您的具體情況下,您可能需要使用pre_GET掛鉤。

在您的掛鉤功能中,您可以訪問request對象,我認爲您可以訪問where子句。

如果您的驗證失敗,則可以提升werkzeug.exceptions.BadRequest

+0

嗯,我有點知道。 :)你可以使用提供的鉤子完成任何你想要的任何事情。我希望有一個開關打開並自動驗證,也許我錯過了或miseread。這很奇怪,沒有人要求它,或默認不包括! – stratosgear

+0

你能編輯你正在尋找「內建」驗證的問題嗎?或者接受我的答案? ;) –

+0

我可以看到你來自哪裏。我想因爲沒有造成任何傷害(如果查詢參數不正確,你會得到空列表),這不是問題(還沒有?)。 但我可以想象**內建**驗證查詢參數是有用的,特別是如果它返回給調用者有用的錯誤。 –