欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

Symfony2 框架序列化工具的使用(三)

程序员文章站 2022-06-11 21:26:02
...
上一篇文章我们提到了添加自定义的 Normalizer。这一篇将更加深入讨论自定义 Normalizer 的使用。

目前为止,我们所做的 Normalizer 只能老老实实按照我们的 Model 的结构序列化,我们最多只能通过 Serialize Group 的功能控制一下某些属性的隐显。但我们的接口可能需要提供 Model 结构外更多的信息,一个最常见的例子,提供 HATEOAS风格的接口的时候,你需要提供相关对象所对应的接口的地址,而这个地址往往是 Model 不会提供的(Model 层也不应该提供),举个例子,如果我们有一个 User 类,它具有 Groups 属性,正常序列化后的结果可能是这样:

// http://api.example.com/user/1 {    "id": 1,    "name": "chris",    "groups: [        {            "id": 1,            "name": "PHP"        }    ]}

而 HATEOAS 过的结果,需要添加每一个 group 的 uri 信息:

// http://api.example.com/user/1 {    "id": 1,    "uri": "http://api.example.com/user/1"    "name": "chris",    "groups: [        {            "id": 1,            "uri