我已经使用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进行非规范化而不知道它应该提前包含哪个对象的任何建议
谢谢