使用JSON模式进行干式用户输入验证(客户端、服务器端)
作为广泛测试用例的一部分,我正在构建一个基于ajax的类似CMS的应用程序,它在各种文档类型上提供CRUD功能,例如:文章、标记等 在服务器端和客户端,我正在考虑使用JSON模式()作为一种干方式进行用户输入验证的方法(即:1个验证模式,在服务器端和客户端都使用,没有重复的代码等等)。这似乎很好,因为:使用JSON模式进行干式用户输入验证(客户端、服务器端),json,validation,dry,Json,Validation,Dry,作为广泛测试用例的一部分,我正在构建一个基于ajax的类似CMS的应用程序,它在各种文档类型上提供CRUD功能,例如:文章、标记等 在服务器端和客户端,我正在考虑使用JSON模式()作为一种干方式进行用户输入验证的方法(即:1个验证模式,在服务器端和客户端都使用,没有重复的代码等等)。这似乎很好,因为: JSON模式都是用JS和Java实现的,因此理论上一个模式可以处理客户端和服务器端验证 所有CUD操作请求和响应都是JSON(通过ajax) 但是,除了对用户输入进行常规验证外,我还希望在服
- JSON模式都是用JS和Java实现的,因此理论上一个模式可以处理客户端和服务器端验证
- 所有CUD操作请求和响应都是JSON(通过ajax)
一些背景/目标:
- 使用REST方法的基于ajax的CMS
- CUD请求通过ajax使用rest方法执行(即:分别映射POST、PUT和DELETE)。请求和响应都是通过JSON完成的
- 没有表格的CMS。而是使用就地编辑(例如使用Aloha编辑器:
- 保持干燥
- 模板:通过客户端和服务器端的Mustache模板完成。通过ajax的初始渲染和增量渲染是基于1和相同的模板完成的。我想做一些不同于Mustache的东西(bc,当然它缺乏表达能力),但它至少适用于这个原型。(关于备选方案,请参见前面的问题,我仍在寻找答案:)
- 干输入验证:如上所述
验证流程(如果失败):
$.ajax({
....
error: function(xhr, status, error) {
var validationJSON = JSON.parse(xhr.responseText);
//handle server-side validation failure
},
....
});
在服务器上的一个位置(每个模型)有一个单一的验证定义是非常可能的,也是最令人满意的事情之一,这样就可以为客户端和基于AJAX的验证生成适当的JS Yii framework for PHP有一个出色的体系结构,它以一种优雅的方式将所有验证规则存储在模型中(根据需要划分为适当的“场景”)从那以后,只需翻转几个开关,就可以使特定的表单客户端或AJAX可验证。我相信Yii的界面是基于Rails的 无论如何,我强烈建议您从Yii的设计中找出以下要点;即使您不懂PHP,也可以从中获得灵感:
- =>模型验证规则的干源
- =>用于根据模型属性生成表单元素
- 例如,见
- =>验证器的基类,其中规定