API-PLATFORM - 对象在端点处序列化为字符串的模型
API-PLATFORM - model with object serialized to string at endpoint
我在使用 api-platform-generate-crud.
生成 React 组件时遇到了问题
模型有 属性 即对象电子邮件。
我有使我的电子邮件对象成为字符串的序列化程序。
API 端点正在提供字符串。
它适用于 GET & POST。
当我尝试生成 React 组件时,错误消息是
TypeError: Cannot read property '0' of undefined
深入研究,生成器似乎仍然将我的 email 视为对象而不是字符串。
知道如何强制 API 将 'see' 作为字符串而不是对象通过电子邮件发送给 属性 吗?
您定义的数据模型是权威的。 Hydra 文档中的类型反映了 PHP 类 中的类型。
这里,email
属性 的类型是 object
。如果你在某处将相关数据设置为string
,你就不再尊重这个契约了。 Hydra 文档与返回的数据不同步。
您可以通过 decorating api_platform.hydra.normalizer.documentation
服务更改 Hydra 文档中 email
属性 的类型。
但我建议您的实体的 PHP 类' 结构尽可能接近通过 API 公开的结构。
您的 类 应该反映 API 的输出。您可以使用自定义数据提供程序来处理更复杂的数据结构(例如:ORM 实体),然后再组合结构以公开。
我在使用 api-platform-generate-crud.
生成 React 组件时遇到了问题
模型有 属性 即对象电子邮件。
我有使我的电子邮件对象成为字符串的序列化程序。
API 端点正在提供字符串。
它适用于 GET & POST。
当我尝试生成 React 组件时,错误消息是
TypeError: Cannot read property '0' of undefined
深入研究,生成器似乎仍然将我的 email 视为对象而不是字符串。
知道如何强制 API 将 'see' 作为字符串而不是对象通过电子邮件发送给 属性 吗?
您定义的数据模型是权威的。 Hydra 文档中的类型反映了 PHP 类 中的类型。
这里,email
属性 的类型是 object
。如果你在某处将相关数据设置为string
,你就不再尊重这个契约了。 Hydra 文档与返回的数据不同步。
您可以通过 decorating api_platform.hydra.normalizer.documentation
服务更改 Hydra 文档中 email
属性 的类型。
但我建议您的实体的 PHP 类' 结构尽可能接近通过 API 公开的结构。 您的 类 应该反映 API 的输出。您可以使用自定义数据提供程序来处理更复杂的数据结构(例如:ORM 实体),然后再组合结构以公开。