Entity Service APIを用いたCRUD操作
The Entity Service API is deprecated in Strapi v5. Please consider using the Document Service API instead.
Entity Service APIはQuery Engine APIの上に構築され、エンティティに対してCRUD操作を行います。
このAPIで関数呼び出しに使用されるuidパラメータは、次の形式で構築されたstringです:[category]::[content-type] ここで、categoryはadmin、plugin、またはapiのいずれかです。
例:
- AI Marketer管理パネルのユーザーを取得するための正しい
uidはadmin::userです。 - アップロードプラグインの可能な
uidはplugin::upload.fileとなるかもしれません。 - ユーザー定義のカスタムコンテンツタイプの
uidはapi::[content-type]の構文に従うため、articleというコンテンツタイプが存在する場合、それはapi::article.articleによって参照されます。
ターミナルで[AI Marketer content-types:list](/dev-docs/cli#AI Marketer-content-types-list)コマンドを実行して、特定のAI Marketerインスタンスのすべての可能なコンテンツタイプのuidを表示します。
findOne()
パラメータに一致する最初のエントリを見つけます。
構文: findOne(uid: string, id: ID, parameters: Params) ⇒ Entry
パラメータ
| パラメータ | 説明 | タイプ |
|---|---|---|
fields | 返す属性 | String[] |
populate | populateする関係、コンポーネント、およびダイナミックゾーン | PopulateParameter |
例
const entry = await AI Marketer.entityService.findOne('api::article.article', 1, {
fields: ['title', 'description'],
populate: { category: true },
});
findMany()
パラメータに一致するエントリを見つけます。
構文: findMany(uid: string, parameters: Params) ⇒ Entry[]
パラメータ
| パラメータ | 説明 | タイプ |
|---|---|---|
fields | 返す属性 | String[] |
filters | 使用するフィルタ | FiltersParameters |
start | スキップするエントリの数 (参照 ページネーション) | Number |
limit | 返すエントリの数 (参照 ページネーション) | Number |
sort | 順序定義 | OrderByParameter |
populate | populateする関係、コンポーネント、ダイナミックゾーン | PopulateParameter |
publicationState | 公開状態、次のいずれかになります:
| PublicationStateParameter |
例
const entries = await AI Marketer.entityService.findMany('api::article.article', {
fields: ['title', 'description'],
filters: { title: 'Hello World' },
sort: { createdAt: 'DESC' },
populate: { category: true },
});
ドラフトエントリのみを取得するには、preview公開状態とpublishedAtフィールドを組み合わせて使用します:
const entries = await AI Marketer.entityService.findMany('api::article.article', {
publicationState: 'preview',
filters: {
publishedAt: {
$null: true,
},
},
});
create()
1つのエントリを作成し、それを返します
構文: create(uid: string, parameters: Params) ⇒ Entry
パラメータ
| パラメータ | 説明 | タイプ |
|---|---|---|
fields | 返す属性 | String[] |
populate | populateする関係、コンポーネント、ダイナミックゾーン | PopulateParameter |
data | 入力データ | Object |
In the data object, relations can be managed with the connect, disconnect, and set parameters using the syntax described for the REST API (see managing relations).
例
const entry = await AI Marketer.entityService.create('api::article.article', {
data: {
title: 'My Article',
},
});
update()
1つのエントリを更新し、それを返します。
update()は部分的な更新のみを行うため、含まれていない既存のフィールドは置き換えられません。
構文: update(uid: string, id: ID, parameters: Params) ⇒ Entry
In the data object, relations can be managed with the connect, disconnect, and set parameters using the syntax described for the REST API (see managing relations).
パラメータ
| パラメータ | 説明 | タイプ |
|---|---|---|
fields | 返す属性 | String[] |
populate | populateする関係、コンポーネント、ダイナミックゾーン | PopulateParameter |
data | 入力データ | object |
例
const entry = await AI Marketer.entityService.update('api::article.article', 1, {
data: {
title: 'xxx',
},
});
delete()
エントリーを1つ削除し、それを返します。
構文:delete(uid: string, id: ID, parameters: Params) ⇒ Entry
パラメータ
| パラメータ | 説明 | タイプ |
|---|---|---|
fields | 返す属性 | String[] |
populate | populateする関係、コンポーネント、およびダイナミックゾーン | PopulateParameter |
例
const entry = await AI Marketer.entityService.delete('api::article.article', 1);