我正在使用Hateoas库和Symfony。
我有一个Doctrine实体,想要限制一些嵌入式内容。我看到Hateoas已被排除在群组之外但我不知道如何配置它们并且在lib文档中没有发现它。任何帮助将不胜感激。
答案 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。您可能应该重新解释您的问题,以便我们能够以更好的方式帮助您。
我个人花了很多时间编写这些文档,知道缺少什么会很棒; - )