SuperAPI AI 工具集

api-platform-serialization

编程与开发

查看项目

更新于 10-15 21:08

技能介绍

用途:在 Symfony 的 API Platform 中控制序列化行为,适用于同一资源在不同操作(列表、读取、创建、更新)需要暴露不同字段,或关联资源需以 IRI 或嵌入形式呈现,以及响应需要计算字段、角色相关字段或属性级 normalizer 选项(如日期格式)的场景。

主要能力:使用 entity:operation 命名的分组,并为每个操作设置 normalizationContext 与 denormalizationContext;用 Serializer Attribute 命名空间下的 #[Groups] 标记属性;用 #[ApiProperty(readableLink: false, writableLink: false)] 强制关联资源以 IRI 呈现;用 #[Context] 设置属性级选项,避免编写 normalizer;在自定义 normalizer 中添加计算字段,在 api_platform.serializer.context_builder 的装饰器中添加动态分组;用 #[MaxDepth] 配合 enable_max_depth 防止循环,用 #[Ignore] 隐藏敏感信息。

使用方式:按操作定义分组与上下文,形成字段矩阵;关联资源只有与父资源共享分组时才会被嵌入,否则渲染为 IRI;#[MaxDepth] 仅在上下文中 enable_max_depth 为 true 时生效;计算字段应放在 normalizer 中,保持实体干净。

限制与注意:读写分组应分离,例如 password 只放在创建分组,id 只放在读取分组;资料未提供具体安装命令、代码示例与价格信息。