首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在MVC层还是在业务引擎中,验证应该在哪里?

在MVC层还是在业务引擎中,验证应该在哪里?
EN

Stack Overflow用户
提问于 2015-05-10 22:42:37
回答 2查看 72关注 0票数 0

在Spring中编码的web应用程序后端对执行密集计算的“业务引擎”进行远程过程调用。

这些密集的计算有一个高错误率,主要是因为后端对引擎的错误请求和/或DB中的坏/不足数据。

因此,有必要向用户提供可转换为消息的错误代码,以帮助识别问题。

代码语言:javascript
复制
     ----------         -----------          ----------
    |          |       |           |        |          |
    |   USER   | ----> |  BACKEND  | -RPC-> |  ENGINE  |
    |          |       |           |        |          |
     ----------         -----------          ----------
                             |                    |
                             |                    |
                           -----                -----
                   Config |     |     Business |     |
                   DB     |     |     DB       |     |
                           -----                -----

我认为,在调用引擎之前,应该先进行验证,以便快速失败,避免等待在发送、根据负载排队、处理并返回到后端后不可避免地失败的响应。

问题:验证应该发生在: A)后端还是B)业务引擎中?

奖励问题:如果答案是B),业务引擎应该返回错误代码并让后端处理转换,还是也实现消息的i18n?

其他信息:

  • 验证逻辑不是秘密,在后端和业务引擎中都是已知的。
  • 通过RPC调用引擎时使用的配置数据由后端拥有和存储(除了请求之外,引擎没有其他访问权限)。
  • 错误的i18n是必需的。

欢迎支持/反对任何办法的意见和/或替代办法。谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-05-11 00:25:35

验证应该发生在: A)后端还是B)业务引擎?

是。

在多个地方进行验证。对客户端进行验证以获得快速反馈。在控制器中验证安全性,在存储库中验证数据完整性。你知道JSR验证组,对吧?

业务引擎应该返回错误代码并让后端处理转换,还是也实现消息的i18n?

坚持JSR验证开始。这很不错。当存在验证错误时,它会抛出异常。将错误消息保存在属性文件中。

票数 2
EN

Stack Overflow用户

发布于 2015-05-10 22:50:12

在我看来,我不希望我的引擎对错误的请求执行计算。我看不出这有什么价值。因此,您的验证应该始终在后端执行,然后只应将筛选的请求发送到您的引擎。您还必须改进您的web应用程序,以便您从UI获得的不良请求的数量也应该减少。因此,在UI控制器本身中设置尽可能多的逻辑,以便以更好的方式过滤到后端的请求。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30157395

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档