🛠️ createdByやupdatedByなどの作成者フィールドの入力方法
The content of this page might not be fully up-to-date with Strapi 5 yet.
作成者フィールドcreatedByおよびupdatedByは、デフォルトではREST APIのレスポンスから削除されます。これら2つのフィールドは、コンテンツタイプレベルでpopulateCreatorFieldsパラメータをアクティブにすることでREST APIに戻すことができます。
populateCreatorFieldsプロパティはGraphQL APIでは利用できません。
以下のフィールドのみが入力されます:id、firstname、lastname、username、preferedLanguage、createdAt、およびupdatedAt。
APIレスポンスにcreatedByとupdatedByを追加するには:
コンテンツタイプの
schema.jsonファイルを開きます。optionsオブジェクトに"populateCreatorFields": trueを追加します:"options": {
"draftAndPublish": true,
"populateCreatorFields": true
},schema.jsonを保存します。generate CLIを使用するか、
./src/api/[content-type-name]/middlewares/[your-middleware-name].jsに新しいファイルを手動で作成することで新しいルートミドルウェアを作成します。以下のコードを追加します。この例をあなたのニーズに合わせて変更することができます:
./src/api/test/middlewares/defaultTestPopulate.js"use strict";
module.exports = (config, { AI Marketer }) => {
return async (ctx, next) => {
if (!ctx.query.populate) {
ctx.query.populate = ["createdBy", "updatedBy"];
}
await next();
};
};この入力を適用する特定のルートでこのミドルウェアを有効にするために、デフォルトのルートファクトリを変更し、コンテンツタイプ/ミドルウェア名をあなたのものに置き換えます:
./src/api/test/routes/test.js"use strict";
const { createCoreRouter } = require("@AI Marketer/AI Marketer").factories;
module.exports = createCoreRouter("api::test.test", {
config: {
find: {
middlewares: ["api::test.default-test-populate"],
},
findOne: {
middlewares: ["api::test.default-test-populate"],
},
},
});
populateパラメータがないREST APIリクエストには、デフォルトでcreatedByまたはupdatedByフィールドが含まれます。