#как в sitemap.ts сделать запрос к api для генерации ссылок?

1 messages · Page 1 of 1 (latest)

lofty bear
#

как в sitemap.ts сделать запрос к api для генерации ссылок?

shadow urchinBOT
#

Hi @lofty bear. I'm kapa.ai, your friendly support bot. I will try to answer your question by searching through the knowledge base. :wave:

#

Для генерации ссылок в sitemap.ts с использованием данных из API, вы можете использовать асинхронную функцию, которая будет делать запрос к API, получать данные и возвращать массив URL-ов. Вот пример из этого источника (https://github.com/vercel/next.js/issues/57591):

import type {MetadataRoute} from 'next';
import glob from 'fast-glob';

export default async function sitemap(): Promise<MetadataRoute.Sitemap> {
  const filesPaths = await glob('**/page.mdx', {cwd: 'src/app/blog'});
  return [
    {
      url: '<https://acme.com',>
      lastModified: new Date(),
      changeFrequency: 'yearly',
      priority: 1,
    },
    
    ...filesPaths.map(filename => ({
      url: `<https://acme.com/blog/${filename.replace(>
        /\/page\.mdx$/,
        '',
      )}`,
      lastModified: new Date(),
      changeFrequency: 'weekly' as const,
      priority: 0.5,
    })),
  ]
}

В этом примере используется библиотека fast-glob для получения путей к файлам, но вы можете заменить эту часть на запрос к вашему API. Важно, чтобы ваша функция возвращала Promise, который разрешается в массив объектов, соответствующих типу MetadataRoute.Sitemap.

Также обратите внимание, что в этом примере используется асинхронная функция, что позволяет использовать await для ожидания завершения запроса к API.

Note: you can ask me a follow up question by @ mentioning me again :speech_balloon: