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

Ben*_*r77 5 serialization symfony api-platform.com

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

我了解使用 JSON-LD 的好处,但我觉得我错过了一大块拼图。如何在我基于 Symfony 的 PHP 客户端(使用 API)中使用嵌入式 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"
  }
}
Run Code Online (Sandbox Code Playgroud)

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

我已经编写了自己的反规范化器,但我必须告诉序列化器我想首先反序列化为哪种对象,但如果不首先对其进行规范化,我无法从 JSON-LD 中提取它。

我进行了很多搜索,寻找为 Symfony 序列化器制作 JSON-LD 规范化器/反规范化器的人,但什么也没找到(除了 API 平台包本身内的此功能)。

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