REST API + 前端 - 验证最佳实践
REST API + Frontend - Validation Best Practices
我目前正在做一些关于验证的研究(例如用户表单)。
很明显,验证绝对必须在后端进行,以防止 "bad intentions" 或恶意输入等。
在前端进行验证会额外增加用户友好性,因为它通常更快,而且我们可以节省服务器往返时间。
我的问题如下:
进行验证是好习惯吗?仅在服务器端和 return 本地化的错误消息然后由前端显示?
或者这是绝对不行的,验证应该始终在双方进行?
即使后端和前端验证都已完成,并且由于意外缺少前端验证而导致后端发生故障,响应是否应包含要在前端显示的本地化信息?还是只显示一般 "Something went wrong" 消息?
不知何故,我对来自 API 的本地化错误消息有一种不好的感觉。
关于您的主要问题:
My question is the following: Is it good practice to do the validation e.g. only on the server-side and return localized error messages that are then shown by the front end?
如您所说,前端验证有利于友好,但不仅如此。
查看ZIP Code验证的例子(它有固定的格式,所以很容易验证)。如果您不在前端进行验证,您可能会向服务器发送许多请求(一点点 "overloading" 服务器)并获得响应。这需要时间。在前端,验证是立即进行的。
此外,关于本地化:对于网络应用程序,例如在 AngularJS 中,有翻译模块(在 Angular 中有 angular-translate)。
同时,后端验证也是一种很好的做法(没有人希望数据库中有错误数据或使软件崩溃)。
我有两个人使用 REST API 的项目(我用 AngularJS 做前端,他们用 C#/.NET 做后端)。我向他们询问了有关验证的好消息,但不幸的是我只收到 "Bad request"。
对于作为开发人员的我来说,在开发过程中并不好,因为我不知道该消息是什么意思(我不知道这是我的请求问题还是他们的错误)。此外,我必须向用户显示消息:"Problem with form"(这不友好)-当然,我也有自己的验证。
总结:最好两边都进行验证,并且验证应该详细告知用户问题(但不要那么多)。
我目前正在做一些关于验证的研究(例如用户表单)。
很明显,验证绝对必须在后端进行,以防止 "bad intentions" 或恶意输入等。
在前端进行验证会额外增加用户友好性,因为它通常更快,而且我们可以节省服务器往返时间。
我的问题如下: 进行验证是好习惯吗?仅在服务器端和 return 本地化的错误消息然后由前端显示?
或者这是绝对不行的,验证应该始终在双方进行?
即使后端和前端验证都已完成,并且由于意外缺少前端验证而导致后端发生故障,响应是否应包含要在前端显示的本地化信息?还是只显示一般 "Something went wrong" 消息?
不知何故,我对来自 API 的本地化错误消息有一种不好的感觉。
关于您的主要问题:
My question is the following: Is it good practice to do the validation e.g. only on the server-side and return localized error messages that are then shown by the front end?
如您所说,前端验证有利于友好,但不仅如此。 查看ZIP Code验证的例子(它有固定的格式,所以很容易验证)。如果您不在前端进行验证,您可能会向服务器发送许多请求(一点点 "overloading" 服务器)并获得响应。这需要时间。在前端,验证是立即进行的。 此外,关于本地化:对于网络应用程序,例如在 AngularJS 中,有翻译模块(在 Angular 中有 angular-translate)。
同时,后端验证也是一种很好的做法(没有人希望数据库中有错误数据或使软件崩溃)。
我有两个人使用 REST API 的项目(我用 AngularJS 做前端,他们用 C#/.NET 做后端)。我向他们询问了有关验证的好消息,但不幸的是我只收到 "Bad request"。 对于作为开发人员的我来说,在开发过程中并不好,因为我不知道该消息是什么意思(我不知道这是我的请求问题还是他们的错误)。此外,我必须向用户显示消息:"Problem with form"(这不友好)-当然,我也有自己的验证。
总结:最好两边都进行验证,并且验证应该详细告知用户问题(但不要那么多)。