实体服务已弃用

页面摘要: 实体服务 API 在 Strapi 5 中已弃用,并由文档服务 API 取代。后者使用 documentId、对所有查询返回数组,并引入了用于草稿与发布工作流的新方法。

Strapi v4 中使用的实体服务已弃用,并在 Strapi 5 中被新的 文档服务 API 取代。 本节汇总了关于该破坏性变更的有用说明和操作步骤。

代码迁移工具: entity-service-document-service

破坏性变更说明

在 Strapi v4 中

实体服务 API 是与内容类型交互的首选 API。

在 Strapi 5 中

文档服务 API 取代了 Strapi v4 的实体服务 API。

迁移

本节汇总了关于该破坏性变更的有用说明和操作步骤。

说明

使用 Strapi 5 的文档服务 API 而非 Strapi v4 的实体服务 API 时,需要考虑以下主要问题:

  • 文档服务 API 需要一个 documentId 属性。 此破坏性变更也影响 REST 和 GraphQL API(👉 请参阅 相关破坏性变更条目)。 :::info 为方便过渡到 Strapi 5,文档服务 API 的响应除了新的 documentId 字段外,仍然包含 id 字段。 :::

  • findMany() 函数在 Strapi v4 和 Strapi 5 中返回的结果不同:

    在 Strapi v4 中:

    实体服务 API 的 findMany() 函数对单一类型返回单个条目。

    在 Strapi 5 中:

    文档服务 API 的 findMany() 函数 始终返回数组。

要获取单个条目,请从返回的数组中提取第一项,或使用 第 findFirst() 函数。

迁移步骤

使用 升级工具 时,迁移部分由 codemod 处理。

👉 实体服务 API 到文档服务 API 迁移参考 提供了关于哪些方面由 codemod 处理、哪些用例需要手动迁移的更多信息。