随着Web应用程序需求的增长,我发现自己编写了越来越多的API驱动的Web应用程序。我使用AngularJS之类的框架来构建与这些API通信的富Web客户端。目前,我在服务器端/ API中使用PHP(Lumen或Laravel)。
问题是,我发现自己经常在客户端和服务器端之间重复业务逻辑。
当我说业务逻辑时,我指的是类似以下规则的订单:
为了使该应用程序既快速响应又快速,在客户端进行了计算逻辑(以及其他业务逻辑)。由于我们不应该信任客户端,因此我在服务器端重新验证了这些数字。这种逻辑可能变得非常复杂,并且在两个地方编写这种复杂的逻辑都非常危险。
我想到了三种解决方案:
使所有需要业务逻辑的内容都对API进行ajax调用。所有业务逻辑都将存在于一个地方,并且只能进行一次测试。这可能很慢,因为客户必须等待他们对定单进行的每项更改才能获取更新的值和结果。拥有非常快速的API可以帮助您解决此问题。主要缺点是,当用户的连接不良(移动设备)时,这可能无法正常工作。
在客户端和服务器端编写业务逻辑。客户在对表单进行更改时会立即获得反馈,并且一旦他们在服务器上提交,我们就会验证所有数据。这里的缺点是我们必须复制所有业务逻辑,并测试双方。这肯定是更多的工作,并且会使将来的工作变得脆弱。
信任客户!!!在客户端编写所有业务逻辑,并假设它们没有篡改数据。在我当前的情况下,我正在开发一个报价构建器,该报价构建器将始终受到人工审核,因此,实际上这是可以的。
老实说,我对任何解决方案都不满意,这就是为什么我向社区寻求建议的原因。我很想听听您对这个问题的看法或解决方法!
您可以再做一件事。
仅使用JavaScript创建验证和业务逻辑代码。但要使其尽可能松散地耦合。如果可能,仅将JSON作为输入,并将JSON作为输出。
然后,在现有的PHP服务器旁边设置一个单独的NodeJS服务器,以将该逻辑提供给客户端,这样就可以在客户端使用它而无需AJAX调用。
然后,在PHP服务器上,当您需要验证和运行所有这些业务逻辑规则时,请使用cURL调用NodeJS业务逻辑并验证数据。这意味着从PHP服务器到NodeJS服务器的HTTP调用。NodeJS服务器将具有其他代码,这些代码将获取数据,使用相同的代码进行验证并返回结果。
通过这种方式,您可以
您唯一需要做的就是在PHP服务器旁边设置一个NodeJS服务器。但是您无需更改所有代码即可在NodeJS服务器上运行。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句