API平台 - 从结果中删除密码哈希

时间:2017-11-29 11:02:42

标签: symfony doctrine-orm api-platform.com

我有用户实体,其中包含以下属性:id,email,password ...

密码属性是一个密码哈希,我想从项目和集合操作中将其从GET结果中删除。

这有注释吗? (我试过 @ApiProperty(可读=假),但没有成功)

我想我可以通过事件订阅者从结果中删除密码,但我很好奇是否有任何简单的方法来实现它。

2 个答案:

答案 0 :(得分:2)

使用实体中的群组

/**
 * @ApiResource(attributes={
 *     "normalization_context"={"groups"={"read"}},
 *     "denormalization_context"={"groups"={"write"}}
 * })
 */
class User {
/**
  * @Groups("write")
  * @ORM\Column(..........)
  */
private $password;

Doc:https://api-platform.com/docs/core/serialization#using-serialization-groups

答案 1 :(得分:-1)

查看JMSSerializer,它允许您选择在序列化对象https://jmsyst.com/libs/serializer时返回的内容,它确实很好并且可以满足您的需求。