#как в sitemap.ts сделать запрос к api для генерации ссылок?
1 messages · Page 1 of 1 (latest)
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.