Api 平台:何时使用 DTO 以及何时使用序列化组?

Api Platform : When to use DTO and when to use serialization groups?

我需要 return 来自 api 的用户。我的用户实体有一些基本属性:

但我不想 return json 响应中的密码。

目前我看到有 2 种可能性可以将其从输出中删除:

我想知道正确的方法,何时使用序列化组以及何时使用 DTO(利弊)。

谢谢

如果您只想删除密码序列化组是合适的。

  • 组是添加或删除属性的最简单方法
  • DTO 可用于更好的控制,但我不知道任何用例。

所以基本上只需在您的 ApiPlatform 注释中添加 normalizationContext={"groups"={"user_read"}} 并为可读属性指定 @Groups({"user_read"})