【问题标题】:How to generate validation rules on back-end side?如何在后端生成验证规则?
【发布时间】:2020-05-21 10:54:51
【问题描述】:

客户端是浏览器中的webapp,后端是用Java(Spring Boot)编写的。业务流程如下:从服务器请求实体→用户填写表单→表单发送到后端。表单应在前端和后端进行验证。验证规则取决于实体内部的值。我想避免负责派生验证规则的代码重复。我认为最好的方法是后端添加验证规则以响应请求的实体,以便前端可以使用它们。有没有解决此类问题的通用方法?

【问题讨论】:

  • 是的。你可以从这篇文章开始Validating Form Input
  • spring.io/guides/gs/validating-form-input 的问题在于,这种方法会“懒惰地”验证表单:当提交请求发送到后端时。但我需要将规则包含在响应中并由前端使用,以便前端不会发送无效表单。
  • 验证规则可能不是避免代码重复的最佳场所。这在财务相关验证规则的情况下非常重要,您希望前端和后端验证规则是分开的。同样,这取决于您的用例。

标签: java spring spring-boot


【解决方案1】:

虽然我从未使用过,但我建议您熟悉 Open Api https://swagger.io/specification/

这是各种引擎实现的规范:https://github.com/OAI/OpenAPI-Specification/blob/master/IMPLEMENTATIONS.md

每个引擎都提供基于写在合约文件中的合约的代码生成。应该可以实现一些简单的组合验证。我很确定,如果您想获得一些基于数据库状态的顺序复杂验证,您最终将自己完成。

【讨论】:

    猜你喜欢
    • 2017-01-07
    • 2021-02-27
    • 1970-01-01
    • 2021-05-09
    • 2022-06-15
    • 1970-01-01
    • 1970-01-01
    • 2017-12-01
    • 2011-02-06
    相关资源
    最近更新 更多