Skip to main content

コンポーネントとダイナミックゾーンはidを返さない

AI Marketer 5では、コンポーネントとダイナミックゾーンはREST APIリクエストでidを返さないため、部分的に更新することができません。

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

破壊的変更の説明

AI Marketer v4では

AI Marketer v4では、コンポーネントのidを渡すことで部分的にコンポーネントを更新することができます。

AI Marketer 5では

REST APIにおけるコンポーネントとダイナミックゾーンのレスポンスにはidが含まれず、部分的な更新は不可能です。

移行

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

注意点

  • AI Marketer v4では、次のようにリクエストを送信してコンポーネントのidを返すことができました:

    // 1. GET /category/:id
    category = fetch(...)

    // 2. PUT /category/:id
    {
    data: {
    name: 'category-name',
    // Update component by its id
    component: {
    id: category.component.id // Use the id received in 1.
    value: 'value'
    }
    }
    }

    つまり、コンポーネントのidを指定してvalueフィールドを更新することができました。

  • AI Marketer 5では:

    • ドラフト & パブリッシュ機能が改良され、文書はドラフト版と公開版の両方を持つことができます。
    • コンテンツAPIのデフォルトの挙動は公開データを返すことで、例えばPUT /category/:idはドキュメントのドラフト版を更新して公開するために使用することができます。
    • REST APIのレスポンスは公開版を返すため、idを使用すると、公開版の一意の識別子を使用してコンポーネントやダイナミックゾーンのドラフト版を更新しようとすることになり、これは不可能です。
    • コンポーネントを部分的に更新しようとすると、次のエラーが発生します:Some of the provided components in component are not related to the entity
  • この破壊的な変更はREST APIにのみ影響を与え、Document Service APIには影響を与えません。なぜなら、Document Service APIはデフォルトでドキュメントのドラフト版を返すため、コンテンツマネージャーでコンポーネントやダイナミックゾーンを部分的に更新することが可能です。

手動手順

REST APIを使用して更新する際に、全体のコンポーネントを送信するようにカスタムコードを更新します。