如何使用PHP从ApiPlatform反序列化JSON-LD

时间:2017-09-22 06:19:46

标签: symfony serializer api-platform.com

我已经使用ApiPlatform为我的系统成功构建了一个API。感谢开发人员,这是一个优秀的系统。我可以用JSON-LD格式发送请求,并在JSON-LD中返回它的响应。

我理解使用JSON-LD的好处,但我觉得我错过了一大块难题。如何在基于Symfony的PHP客户端中使用嵌入式JSON-LD上下文反序列化为PHP对象。

说我的API有以下回复

{
  "@context": "/contexts/CallbackRequest",
  "@id": "/callback-requests/72",
  "@type": "CallbackRequest",
  "id": 72,
  "created": "2017-09-22T08:07:25+02:00",
  "customer": {
    "@id": "/customers/13",
    "@type": "Customer",
    "id": 13,
    "firstName": "Joe",
    "lastName": "Bloggs",
    "email": "joe@bloggs.com",
    "mobilePhone": "123456789"
  }
}

现在有足够的信息可以使用嵌套对象CallbackRequest反序列化为2个PHP对象Customer,这要归功于JSON-LD @context和@type数据。

我已经编写了自己的非规范化程序,但是我必须先告诉序列化程序我想要反序列化的对象是什么类型,但是如果不先对它进行规范化,我就无法从JSON-LD中提取它。

我已经搜索了很多寻找为Symfony序列化程序制作了JSON-LD规范化器/非规范化器但没有找到任何东西的人(除了API平台包本身内部的这个功能)。

任何人都可以向我提供任何指针,无论是我可以实现的JSON-LD非规范化程序包,还是有关如何实现Symfony序列化程序以对JSON-LD进行非规范化而不知道它应该提前包含哪个对象的任何建议

谢谢

0 个答案:

没有答案