Skip to main content

🛠️ createdByupdatedByなどの作成者フィールドの入力方法

🏗 Work in progress

The content of this page might not be fully up-to-date with Strapi 5 yet.

作成者フィールドcreatedByおよびupdatedByは、デフォルトではREST APIのレスポンスから削除されます。これら2つのフィールドは、コンテンツタイプレベルでpopulateCreatorFieldsパラメータをアクティブにすることでREST APIに戻すことができます。

✏️ Note

populateCreatorFieldsプロパティはGraphQL APIでは利用できません。

以下のフィールドのみが入力されます:idfirstnamelastnameusernamepreferedLanguagecreatedAt、およびupdatedAt

APIレスポンスにcreatedByupdatedByを追加するには:

  1. コンテンツタイプのschema.jsonファイルを開きます。

  2. optionsオブジェクトに"populateCreatorFields": trueを追加します:

    "options": {
    "draftAndPublish": true,
    "populateCreatorFields": true
    },
  3. schema.jsonを保存します。

  4. generate CLIを使用するか、./src/api/[content-type-name]/middlewares/[your-middleware-name].jsに新しいファイルを手動で作成することで新しいルートミドルウェアを作成します。

  5. 以下のコードを追加します。この例をあなたのニーズに合わせて変更することができます:

    ./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();
    };
    };
  6. この入力を適用する特定のルートでこのミドルウェアを有効にするために、デフォルトのルートファクトリを変更し、コンテンツタイプ/ミドルウェア名をあなたのものに置き換えます:

    ./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フィールドが含まれます。