Fetcher

在 DrupalClient 中使用自定义 fetcher。


DrupalClient 使用 Next.js 中的 polyfilled fetch 作为默认的 fetcher。

您可以使用 fetcher 选项提供您自己的 fetcher。


示例

以下是如何用 cross-fetch 替换默认的 fetcher。

我们使用 **cross-fetch** 而不是 **node-fetch**,因为它与内置的 fetch 兼容,并使用相同的签名。

lib/drupal.ts

import { DrupalClient } from "next-drupal"
import crossFetch from "cross-fetch"
// Create a custom fetcher.
const customFetcher = (url, options) => {
const { withAuth, ...opts } = options
if (withAuth) {
// Make additional requests to fetch a bearer token
// Or any other Authorization headers.
}
return crossFetch(url, {
...opts,
// Pass in additional options. Example: agent.
})
}
// Pass the custom fetcher to the client.
export const drupal = new DrupalClient(
process.env.NEXT_PUBLIC_DRUPAL_BASE_URL,
{
fetcher: customFetcher,
}
)