如何在Hateoas PHP库中使用组?

时间:2014-04-22 18:12:15

标签: php symfony doctrine-orm hateoas

我正在使用Hateoas库和Symfony。

我有一个Doctrine实体,想要限制一些嵌入式内容。我看到Hateoas已被排除在群组之外但我不知道如何配置它们并且在lib文档中没有发现它。任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:3)

如果在实体中定义序列化程序组

class Client
{
    /**
     * @var integer
     */
    private $id;

    /**
     * @var string
     *
     * @JMS\Expose
     * @JMS\Groups({"default", "full"})
     */
    private $firstName;

    ...

}

您还应该在HATEOAS注释(或您正在使用的配置系统)中定义它

 * @Hateoas\Relation("_self",
 *      href = @Hateoas\Route("api_clients_get_client", parameters = {"id" = "expr(object.getId())"}, absolute = true),
 *      exclusion = @Hateoas\Exclusion(groups={"default","full"})
 * )

这是有道理的,因为如果您不公开属性,则不想公开链接。

即你有两组“公共”和“管理员”

在管理员中,您可能会将公开调用隐藏的内容暴露给您的api。但如果你无法控制你在通话中暴露的HATEOAS链接,你可能会在你的“公开”电话中暴露不需要的链接

答案 1 :(得分:1)

本部分介绍了排除规则:https://github.com/willdurand/Hateoas#exclusion。您可能应该重新解释您的问题,以便我们能够以更好的方式帮助您。

我个人花了很多时间编写这些文档,知道缺少什么会很​​棒; - )