使用REST API和javascript前端(例如Angular)进行模型验证的最佳做法

安迪

我正在过渡到响应更快的前端Web应用程序,并且对模型验证有疑问。这是设置:服务器具有用于插入,更新,检索等的标准REST API。这可以用Node或Java Spring编写,没关系。前端是用类似Angular(或类似语言)的东西编写的。

我需要弄清楚将验证代码放在哪里。要求如下:

  • 所有验证代码应只写在一个地方。客户端和服务器都不一样。这意味着它在持久化时应该驻留在REST API内的服务器上。

  • 前端应该能够理解来自服务器的验证错误,并将它们与引起错误的特定字段相关联。因此,如果“用户名”字段是必填字段,则客户端可以在该字段旁边放置一个错误,指出“用户名是必填字段”。

  • 应该有可能验证正确的变量类型。因此,如果我们期望一个数字或一个日期而得到一个字符串,则错误将类似于“'Yo'不是正确的日期”之类的错误。

  • 错误消息应被本地化为用户的语言。

谁能帮我吗?我需要一些简单而强大的工具。

谢谢

安迪

经过大量研究,我找到了使用Meteor.js平台的解决方案。由于它是在服务器和客户端上都运行的纯JavaScript解决方案,因此您只需定义一次脚本,即可在客户端和服务器上运行它们。

从官方的流星文档中:

客户端服务器测试子目录之外的文件都同时加载在客户端和服务器上!那是模型定义和其他功能的地方。

哇。如果您问我一次,仅定义模型验证脚本是一件很酷的事情。此外,也无需在JSON和任何服务器端技术之间进行映射。另外,没有ORM映射可将其保存在数据库中。好的!

再次,从文档:

在Meteor中,客户端和服务器共享相同的数据库API。相同的确切应用程序代码(例如验证器和计算的属性)通常可以在两个地方运行。但是,尽管在服务器上运行的代码可以直接访问数据库,但是在客户端上运行的代码则不能。这种区别是Meteor数据安全模型的基础。

听起来不错。这是最后一个小宝石:

输入验证: Meteor允许您的方法和发布函数采用任何JSON类型的参数。(实际上,Meteor的有线协议支持EJSON,它是JSON的扩展,它还支持其他常见类型,例如日期和二进制缓冲区。)JavaScript的动态类型意味着您无需为应用程序中的每个变量声明精确的类型,但通常有助于确保客户端传递给您的方法和发布函数的参数属于您期望的类型。

无论如何,听起来我已经找到了解决问题的方法。如果其他人知道一次定义验证并在客户端和服务器上运行验证的方法,请在下面发布答案,我很乐意听到。

谢谢大家

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用REST API和javascript前端(例如Angular)进行模型验证的最佳做法

来自分类Dev

REST API +前端-验证最佳做法

来自分类Dev

REST-API模型的最佳做法

来自分类Dev

REST API URL最佳做法

来自分类Dev

Laravel最佳做法:使用预定义字段进行验证

来自分类Dev

使用Web API和JSON补丁文档进行模型验证

来自分类Dev

无法使用REST API

来自分类Dev

使用USDA REST API

来自分类Dev

使用AWS Amplify和Android使用Cognito对REST API进行身份验证

来自分类Dev

使用Security REST插件保护REST API

来自分类Dev

使用Java使用REST API

来自分类Dev

使用Javascript进行脚本缓存的最佳做法

来自分类Dev

使用Sails JS对Jira REST API进行身份验证

来自分类Dev

Webapp使用Rest API进行身份验证

来自分类Dev

使用 spring restTemplate 对 POST REST API 进行身份验证

来自分类Dev

使用 Rest API 进行 Firebase 身份验证

来自分类Dev

使用REST进行远程身份验证

来自分类Dev

使用REST进行远程身份验证

来自分类Dev

使用 Angular Observable 使用 REST API

来自分类Dev

REST最佳做法和连接性问题

来自分类Dev

使用邮件和密码通过REST API进行身份验证[Firebase]

来自分类Dev

注册表格REST API最佳做法

来自分类Dev

REST API会话的SQLAlchemy最佳做法

来自分类Dev

如何使用PayPal REST API和IPN验证销售

来自分类Dev

REST API用于内部使用和身份验证

来自分类Dev

使用AngularJS进行身份验证,使用REST Api WS进行会话管理和安全性问题

来自分类Dev

使用Flask-Security验证REST API

来自分类Dev

使用DocuSign REST API设置数据验证

来自分类Dev

使用 Windows 身份验证的 REST API