我已经使用 ApiPlatform 为我的系统成功构建了一个 API。感谢开发人员,这是一个出色的系统。我可以以 JSON-LD 格式向它发送请求,它也以 JSON-LD 格式返回它的响应。
我了解使用 JSON-LD 的好处,但我觉得我错过了一大块拼图。如何在我的基于 Symfony 的 PHP 客户端中使用嵌入的 JSON-LD 上下文反序列化为 PHP 对象,该客户端将使用 API。
假设我的 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"
}
}
由于 JSON-LD @context 和 @type 数据,现在这里有足够的信息可以反序列化为CallbackRequest
具有嵌套对象的 2 个 PHP 对象。Customer
我已经编写了自己的反规范化器,但是我必须告诉序列化器我想首先反序列化什么样的对象,但是如果不先对其进行规范化,我就无法从 JSON-LD 中提取它。
我搜索了很多,寻找为 Symfony 序列化器制作 JSON-LD 规范化器/非规范化器但一无所获的人(API 平台包本身内的此功能除外)。
任何人都可以向我提供任何指针,无论是我可以实现的 JSON-LD 非规范化程序包,还是关于如何实现 Symfony 序列化程序以非规范化 JSON-LD 的任何建议,而无需事先知道它应该包含什么对象。
谢谢