【问题标题】:Symfony 3 REST API POST validationSymfony 3 REST API POST 验证
【发布时间】:2017-08-15 20:33:58
【问题描述】:

在 Symfony3 REST 应用程序中处理实体验证的“最佳”方式是什么?

我知道我可以使用 Form 来执行此操作并使用其现有的验证器(必需、电子邮件类型、重复类型......)。

我是否也可以使用实体存储库或其他服务来验证、序列化、反序列化我的实体,从而将所有实体 IN/OUT 逻辑放在同一个地方?但是,当数据可能并非全部存在时,我应该如何在创建和更新期间处理验证?

有什么想法吗?

【问题讨论】:

  • 顺便说一句,我觉得使用表单很奇怪,因为我不关心日期的表示 (UI),而只关心它的实际值。例如我不想验证复选框或单选,但只是给定的值确实是一个布尔值。

标签: rest api symfony validation


【解决方案1】:
  1. 通过控制器处理请求
  2. 使用表单处理该请求
  3. 构建自定义验证器或利用 FormClass 上的现有验证器
  4. 使用您的控制器 (#1) 分别处理 PUTPOSTPATCH 并执行独特的操作。
  5. 在控制器中序列化/反序列化您的请求/响应使用控制器(#1、#4)将请求交给的处理程序。

【讨论】:

    【解决方案2】:

    感谢您的意见。我将使用 Doctrine Assert 验证器和 Symfony\Component\Validator\Validation 类来处理验证。

    关于 Symfony3 文档,我认为这可能是最好的选择。

    https://symfony.com/doc/current/validation.html

    【讨论】:

    • 请注意,如果您在 API 调用中发送数组而不是字符串,验证可能会失败(取决于确切的验证器)并出现异常而不是验证错误。
    【解决方案3】:

    另一种方式,在我的项目中,我没有为实体申请表格,也许你需要这种方式

    帮手: 基本函数:

    在控制器中创建动作

    更新控制器中的动作

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-03
      • 1970-01-01
      • 2018-02-05
      相关资源
      最近更新 更多