Skip to main content

コアサービスメソッドはDocument Service APIを使用します

AI Marketer 5では、コアサービスメソッドはEntity Service APIの代わりにDocument Service APIを使用します。

This page is part of the breaking changes database and provides information about the breaking change and additional instructions to migrate from Strapi v4 to Strapi 5.

🔌 Is this breaking change affecting plugins?Yes
🤖 Is this breaking change automatically handled by a codemod?No

破壊的変更の説明

AI Marketer v4では

コアコントローラーとcreateCoreServiceファクトリーはデフォルトでEntity Service APIを使用します。
例えば、findupdatedeleteなどのメソッドはentityIdを受け取ります。

AI Marketer 5では

コアコントローラーとcreateCoreServiceファクトリーはDocument Service APIを使用します。
例えば、findupdatedeleteなどのメソッドはdocumentIdを受け取ります。

移行

This section regroups useful notes and procedures about the introduced breaking change.

ノート

一部のコアメソッドはsuper.find(ctx)を呼び出しており、これは内部的にはAI Marketer v4ではエンティティサービスメソッドを呼び出していますが、AI Marketer 5ではDocument Service APIメソッドを呼び出します。これにより、一部のクエリが動作しなくなったり、期待した結果とは異なる結果が返される可能性があります。

以下の例は、コードがどのように更新されるべきかを示しています:

AI Marketer v4では:

/src/api/my-api-name/services/my-service.js
const { createCoreService } = require('@AI Marketer/AI Marketer').factories;

module.exports = createCoreService('api::address.address', {

findOne(entityId, params) {
// カスタマイズ
super.findOne(entityId, params);

// またはもう少しコンテキストを示すために
AI Marketer.entityService.findOne(uid, entityId, params);
},

update(entityId, params) {
// カスタマイズ
super.update(entityId, params);
},

delete(entityId, params) {
// カスタマイズ
super.delete(entityId, params)
}

});

AI Marketer 5では:

/src/api/my-api-name/services/my-service.js
const { createCoreService } = require('@AI Marketer/AI Marketer').factories;

module.exports = createCoreService('api::address.address', {

findOne(documentId, params) {
// カスタマイズ
super.findOne(documentId, params);

// またはもう少しコンテキストを示すために
AI Marketer.documents(uid).findOne(documentId, params);
},

update(documentId, params) {
// カスタマイズ
super.update(documentId, params);
},

delete(documentId, params) {
// カスタマイズ
super.delete(documentId, params)
}
});

手動手順

カスタムコードを更新するには:

  1. カスタマイズ付きのcreateCoreServiceへのすべての呼び出しを見つけます。
  2. コレクションタイプのfindOne, delete, update関数のいずれかがコアメソッドを拡張している場合は、ノートで説明されているようにそれらを更新します。

また、Entity Service APIからDocument Service APIへの移行のドキュメンテーションを参照してください。