实体服务已弃用
¥Entity Service deprecated
Strapi v4 中使用的实体服务已被弃用,并由 Strapi 5 中的新 文档服务 API 取代。
本节重新组合了有关引入的重大更改的有用说明和程序。
¥This section regroups useful notes and procedures about the introduced breaking change.
¥The Entity Service that was used in Strapi v4 is deprecated and replaced by the new Document Service API in Strapi 5.
本节重新组合了有关引入的重大更改的有用说明和程序。
¥This section regroups useful notes and procedures about the introduced breaking change.
\🔌 此重大更改是否会影响插件? | \是 |
---|
\🤖 此重大更改是否由 codemod 自动处理? | \部分 |
---|
重大更改描述
¥Breaking change description
在 Strapi v4 中
¥In Strapi v4
实体服务 API 是用于与你的内容类型交互的首选 API。
¥The Entity Service API is the go-to API to use to interact with your content-types.
在 Strapi 5 中
¥In Strapi 5
文档服务 API 取代了 Strapi v4 中的实体服务 API。
¥The Document Service API replaces the Entity Service API from Strapi v4.
迁移
¥Migration
本节重新组合了有关引入的重大更改的有用说明和程序。
¥This section regroups useful notes and procedures about the introduced breaking change.
注意
¥Notes
以下是使用文档服务 API 而不是 Strapi v4 中的实体服务 API 时需要考虑的主要主题:
¥The following are the main topics to take into account when using the Document Service API instead of the Entity Service API from Strapi v4:
文档服务 API 需要
documentId
属性。
此重大更改还会影响 REST 和 GraphQL API(👉 参见 相关的重大变更条目)。为了简化向 Strapi 5 的过渡,文档服务 API 响应除了新的documentId
字段外,还包含id
字段。:::¥The Document Service API expects a
documentId
property.
This breaking change also affects the REST and GraphQL APIs (👉 see the related breaking change entry).👀 InfoTo ease the transition to Strapi 5, Document Service API responses still include
id
fields in addition to the newdocumentId
fields.Strapi v4 和 Strapi 5 中
findMany()
函数返回的响应不同:¥The response returned by the
findMany()
function is different in Strapi v4 and Strapi 5:
在 Strapi v4 中:
¥In Strapi v4:
Entity Service API 中的 findMany()
函数为单一类型返回单个项目。
¥The findMany()
function from the Entity Service API returns a single item for single types.
在 Strapi 5 中:
¥In Strapi 5:
文档服务中的 findMany()
功能 API 始终返回数组。
要获取单个项目,请从返回的数组中提取第一个项目,或使用 findFirst()
函数。
¥The findMany()
function from the Document Service API always returns arrays.
To get a single item, extract the first item from the returned array, or use the findFirst()
function.
Strapi 5 中不再有
findPage()
方法。
👉 参见 相关的重大变更条目。¥There is no
findPage()
method anymore in Strapi 5.
👉 see the related breaking change entry.起草并发布 功能已在 Strapi 5 中更新,这反映在文档服务 API 中:
¥The Draft & Publish feature has been updated in Strapi 5 and this is reflected in the Document Service API:
publicationState
被status
替换
👉 参见 相关的重大变更条目。¥
publicationState
is replaced bystatus
👉 see the related breaking change entry.引入了新方法来处理更新的 起草并发布 功能:
¥New methods are introduced to handle the updated Draft & Publish feature:
published_at
属性不能再用于触发内容发布。¥The
published_at
property can not be used anymore to trigger the publication of content.
Document Service API 的
delete()
功能 返回受影响条目的列表(可以一次删除多个语言环境),而 Strapi v4 中的delete()
函数仅返回已删除的条目。¥The
delete()
function of the Document Service API returns a list of affected entries (multiple locales can be deleted all at once), while thedelete()
function from Strapi v4 returns only the deleted entry.实体服务装饰器不再可用,必须改用 文档服务中间件。
¥Entity Service decorators can not be used anymore, and Document Service middlewares must be used instead.
文档服务 API 不支持文件上传。
¥The Document Service API does not support file uploads.
迁移程序
¥Migration procedure
使用 升级工具 时,迁移部分由 codemod 处理。
¥The migration is partially handled by a codemod when using the upgrade tool.
👉 实体服务 API 到文档服务 API 迁移参考 提供了有关 codemod 处理哪些方面以及哪些用例需要手动迁移的其他信息。
¥👉 The Entity Service API to Document Service API migration reference gives additional information about which aspects are handled by the codemod and which use cases require manual migration.