【发布时间】:2021-09-24 11:40:56
【问题描述】:
我有一个这样的 API 资源实体:
/**
* @ApiResource(
* collectionOperations={},
* itemOperations={"get"},
* normalizationContext={"groups"={"read"}},
* )
*/
class A
{
/**
* @var array<B>
* @Groups("read")
*/
private array $b;
// ...
}
属性的@Groups 注释有效,我只得到带有@Groups("read") 的注释。
但我有这样的嵌套对象:
class B
{
/**
* @var array<C>
* @Groups("read")
*/
private array $c;
// ...
}
class C
{
/**
* @Groups("read")
*/
private string $foo;
private string $bar;
// ...
}
在B 中,@Groups 注释仍然受到尊重,但在C 中,我得到了所有属性,完全忽略了注释。
预期输出如下:
{
"b": [
{
"c": [
{
"foo": "This should be public"
}
]
}
]
}
得到如下输出:
{
"b": [
{
"c": [
{
"foo": "This should be public"
"bar": "This should be private"
}
]
}
]
}
我需要做什么才能完成这项工作?
(如果重要,B 和 C 都不是 @ApiResource,但 C 是 Doctrine @Entity。我为 A 使用自定义数据提供程序)
【问题讨论】:
标签: php symfony serialization api-platform.com