BrandApp Playground

SEO · Sitemap · RSS

cms helpers — toMetadata, toSitemapItems, toRssFeed. SDK 1.8 신규. 외부 사이트가 sdk 응답 한 줄로 Next.js Metadata, app/sitemap.ts, RSS XML을 모두 채울 수 있다.

Live routes

아래 두 라우트는 실제로 sdk.cms.posts.list → toSitemapItems / toRssFeed 호출 결과를 반환한다.

Sitemap preview · 최근 published 0건 / 총 0

No published posts. Posts 페이지에서 dev 서버에 데이터를 추가하면 여기 미리보기가 채워진다.

app/sitemap.ts
import type { MetadataRoute } from "next";
import { toSitemapItems } from "@reopt-ai/brandapp-sdk/cms";

export default async function sitemap(): Promise<MetadataRoute.Sitemap> {
  const pageSize = 100;
  const firstPage = await sdk.cms.posts.list({
    status: "published",
    page: 1,
    limit: pageSize,
  });
  const remainingPages = await Promise.all(
    Array.from(
      { length: Math.max(0, Math.ceil(firstPage.total / pageSize) - 1) },
      (_, index) => sdk.cms.posts.list({
        status: "published",
        page: index + 2,
        limit: pageSize,
      }),
    ),
  );
  const records = [
    ...firstPage.records,
    ...remainingPages.flatMap((page) => page.records),
  ];
  return toSitemapItems(records, {
    siteUrl: "https://www.example.com",
    basePath: "/blog",
  });
}