# 实体服务 API

Strapi 提供了一个实体服务 API,构建在 Query Engine API 之上。实体服务是处理 Strapi 的复杂数据结构(如 componentsdynamic zones 的层,并在后台使用查询引擎 API 来执行数据库查询。

🤓 实体服务 API vs. 查询引擎 API

Strapi v4 提供了多个层来与后端交互并构建查询:

  • 实体服务 API 是推荐用于与应用程序数据库交互的 API。实体服务是处理 Strapi 的复杂数据结构(如组件和动态区域)的层,而较低级别的层并不知道这些结构。
  • 查询引擎 API 在较低级别与数据库层交互,并在后台用于执行数据库查询。它提供对数据库层的无限制内部访问,但仅当实体服务 API 未涵盖您的用例时才应使用。
  • 如果您需要直接访问 knex 功能,请使用 strapi.db.connection

# 基本用法

实体服务 可通过 strapi.entityService 获得:

const entry = await strapi.entityService.findOne('api::article.article', 1, {
  populate: { someRelation: true },
});

# 可用操作

实体服务 API 允许: