跳到主要内容

strapi.fetch uses the native fetch() API

In Strapi 5, the strapi.fetch object is now wrapping node Fetch API instead of node-fetch.

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

Breaking change description

In Strapi v4

Strapi.fetch wrapped node-fetch’s fetch() and accepted the same parameters.

In Strapi 5

The node-fetch module is not used anymore. strapi.fetch calls the native fetch() method.

Migration

Notes

  • The parameters are mostly compatible but there are some differences.

Manual procedure

If your Strapi v4 code passed the timeout parameter to strapi.fetch, replace it with a signal property as follows:

In Strapi v4

strapi.fetch(url, {
method: 'POST',
body,
headers,
timeout: 1000,
}); // accepts the type RequestInit from node-fetch

In Strapi 5

strapi.fetch(url, {
method: 'POST',
body,
headers,
signal: AbortSignal.timeout(1000)
}); // accepts the type RequestInit native to Node