在性能方面,通过API实现客户端验证吗?

时间:2017-12-07 10:53:54

标签: angularjs validation asp.net-web-api

因此,在理想的世界中,客户端验证和服务器端验证都可以在一个地方定义,因此验证只需要编写一次,并且可以在任何地方重复使用。

我必须解决这个问题的想法是使用ASP.NET Core通过API进行所有验证。当客户端上的表单数据发生更改时,它将发送带有更新数据模型的AJAX请求,API会对其进行验证,从而返回任何可能的错误。然后,客户端直接向用户显示这些错误。 这样它仍然看起来像旧的客户端验证,但它实际上都发生在服务器上。

我已经可以想象,由于会发送更多的API调用,服务器负载会增加,但问题是: 这个服务器负载是否可以在例如具有大型表单和复杂验证的大型企业应用程序中进行管理?

这个解决方案还有其他任何重大缺点吗?我需要注意什么?

1 个答案:

答案 0 :(得分:0)

您所说的API不是任何其他类型的后端应用程序。

在这个世界上,是的,有效载荷的验证很重要,需要在API端进行。在某种程度上,验证是最简单的部分,而且资源消耗较少,因为这是您检查的第一件事,如果它没有通过,则API返回400 BadRequest HTTP代码,没有其他任何事情发生。

有些系统可以在API端进行验证,尤其是业务规则验证。例如,您可以拥有一个金融平台,而API只是该世界中的网关。在这种情况下,API充当传递,并且本身不会做太多。

话虽如此,一切都容易受到太多流量的影响,但您应该能够为其投入足够的资源,或者将其部署在云中并让它根据需求进行扩展。您也可以加载测试API,看看他们在压力下的表现如何,您必须知道在一段时间内可以预期的电话数量。

我不会太担心它,我会说验证你可以在客户端做什么,所以如果不需要它你甚至不打API,剩下的就是API