我正在使用 Next.js 14 App router 和 StoryBlok CMS。
我有这段代码,我必须在 Storyblok 中获取所有这些网址。但每次执行此操作时,我都必须从 Storyblok 免费层调用 3 次 API。有没有一种方法可以一次性调用所有 3 个故事一次?
这是我的代码
const getLandingPageData = async (lang) => {
const version = process.env.SB_DATA_VERSION;
const token = process.env.SB_TOKEN;
const landingPageUrl = `https://api-ca.storyblok.com/v2/cdn/stories/landing-page?version=${version}&token=${token}&language=${lang}`;
const FaqUrl = `https://api-ca.storyblok.com/v2/cdn/stories/faq?version=${version}&token=${token}&language=${lang}`;
const ContactUrl = `https://api-ca.storyblok.com/v2/cdn/stories/contacts?version=${version}&token=${token}&language=${lang}`;
let req = await fetch(landingPageUrl, { next: { revalidate: 10 } })
let req2 = await fetch(FaqUrl, { next: { revalidate: 10 } })
let req3 = await fetch(ContactUrl, { next: { revalidate: 10 } })
}
查看 Storyblok 的“链接”端点。此端点允许在一次调用中获取多个故事,这将显着减少 API 调用。调整您的获取请求以调用此端点,并传入您需要的故事的 slugs。这样,您可以一次请求所有 3 个故事,而不是进行 3 个单独的调用。这样效率更高,并且可以节省您的免费套餐配额。请记住检查 Storyblok 的 API 文档以了解确切的语法以及如何为“链接”端点正确构建请求。