使用 Storyblok 和获取数据的更好方法

问题描述 投票:0回答:1

我正在使用 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 } })
}
javascript reactjs next.js content-management-system storyblok
1个回答
0
投票

查看 Storyblok 的“链接”端点。此端点允许在一次调用中获取多个故事,这将显着减少 API 调用。调整您的获取请求以调用此端点,并传入您需要的故事的 slugs。这样,您可以一次请求所有 3 个故事,而不是进行 3 个单独的调用。这样效率更高,并且可以节省您的免费套餐配额。请记住检查 Storyblok 的 API 文档以了解确切的语法以及如何为“链接”端点正确构建请求。

© www.soinside.com 2019 - 2024. All rights reserved.