Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Validation 如何使用Liberator验证表单POST数据?_Validation_Clojure_Liberator - Fatal编程技术网

Validation 如何使用Liberator验证表单POST数据?

Validation 如何使用Liberator验证表单POST数据?,validation,clojure,liberator,Validation,Clojure,Liberator,在Liberator决策树中,我应该在哪里验证表单输入 :格式不正确?似乎旨在检测无效的JSON或无效的表单体。这取决于您所考虑的验证类型,请参阅。下面的讨论是关于是否也应使用来表示逻辑错误的。liberator提供了许多决策点,这些决策点涉及到从请求实体过大到检查正确的媒体类型等诸多方面。我建议您查看上的wikipedia页面,了解哪种返回代码可能最适合您的验证,然后使用它来驱动您的建议,即哪一个liberator决策点是相关的 编辑:假设您想要返回422。您可以使用processable?运

在Liberator决策树中,我应该在哪里验证表单输入


:格式不正确?
似乎旨在检测无效的JSON或无效的表单体。

这取决于您所考虑的验证类型,请参阅。下面的讨论是关于是否也应使用来表示逻辑错误的。liberator提供了许多决策点,这些决策点涉及到从
请求实体过大到检查正确的媒体类型等诸多方面。我建议您查看上的wikipedia页面,了解哪种返回代码可能最适合您的验证,然后使用它来驱动您的建议,即哪一个liberator决策点是相关的


编辑:假设您想要返回422。您可以使用
processable?
运行所需的检查,如果检查失败,其处理程序
unprocessable entity
将返回422。或者您可以使用
librator.representation/ringresponse
从处理程序或操作创建整个响应。另请参见中的讨论。

我认为使用格式不正确的句柄是可以的,但也可以使用,比如说,句柄不可处理的实体。可能更重要的是保持一致。我会从客户端看它,并决定哪个更有意义,哪个为客户端提供正确的粒度级别或反馈。例如,如果客户机获得足够的反馈以区分缺少的参数和提供的参数(但具有不可接受的值)很重要,那么您可能希望对第一个使用格式不正确的句柄,对第二个使用不可处理的实体。另一方面,如果您只需要发出所提供(或未提供)参数存在问题的信号,那么仅使用handle-malformed可能是正确的选择,因为它将减少代码大小并简化客户端所需的逻辑


我倾向于从使用handle-malformed开始,然后当我发现需要区分这两种类型的故障时,将其分解为handle-malformed和handle-unprocessable实体。

那么,对于丢失的输入,您会使用哪种解放者决策?可能是代码400(
:malformed)或者代码422,您可以从
:post代码。