在Liberator决策树中的何处,我应该验证表单输入?
:malformed?似乎旨在检测无效的JSON或无效的表单主体。
发布于 2014-09-16 17:33:09
这有点取决于你脑海中的验证类型,cf。这里的讨论是关于HTTP 400 (bad request) for logical error是否也应该用来通知逻辑错误。liberator提供了许多决策点,这些决策点与从request-entity-too-large到检查正确的媒体类型的事情有关。我建议查看HTTP status codes上的维基百科页面,了解哪个返回代码可能最适合您的验证,然后用它来驱动您的建议,哪个释放者决策点是相关的。
编辑:假设你想返回422。您可以使用processable?运行所需的检查,如果检查失败,其处理程序unprocessable-entity将返回422。或者,您可以使用liberator.representation/ring-response来创建来自处理程序或操作的整个响应。另请参阅liberator google group中的讨论。
发布于 2015-01-24 09:40:30
我认为使用句柄畸形是很好的,但是你也可以使用,比如说,句柄不可处理的实体。可能更重要的是保持一致。我会从客户端的角度来看,并决定哪个更有意义,哪个为客户端提供正确的粒度或反馈级别。例如,如果客户端获得足够的反馈来区分缺少的参数和提供但具有不可接受的值的参数是很重要的,那么您可能希望对第一个参数使用handle-malformed,对第二个使用handle-unprocessable-entity。另一方面,如果您只需要表明提供的(或未提供的)参数存在问题,那么只使用句柄畸形可能是正确的选择,因为它将减少您的代码大小并简化客户端所需的逻辑。
当我发现需要区分两种类型的故障时,我倾向于只使用句柄格式错误,然后将其分解为句柄格式错误和句柄不可处理实体。
https://stackoverflow.com/questions/25864737
复制相似问题