Koble et nettsted til CMS-API-et
CMS-API-en lar nettstedet ditt hente og gjengi publisert innhold fra Profound CMS. Du kan bruke den til å drive dokumentasjonssider, markedssider, blogger, hjelpesentre eller enhver annen innholdsbasert opplevelse.
En typisk integrasjon har tre deler:
For å koble applikasjonen din til CMS-et, oppgi CMS API-URL, nettsteds-ID og API-nøkkel.
const cmsConfig = {
cmsUrl: 'https://cms.dev.tryprofoun.com',
websiteId: 'din-nettsteds-id',
apiKey: process.env.PROFOUND_API_KEY,
};
Bruk miljøvariabler for verdier som endrer seg mellom miljøer:
NEXT_PUBLIC_CMS_API_URL=https://cms.dev.tryprofound.com
NEXT_PUBLIC_WEBSITE_ID=din-nettsteds-id
PROFOUND_API_KEY=din-api-nøkkel
Ikke eksponer private API-nøkler i klientkode. API-nøkler bør brukes på serveren din, i byggeprosessen din eller i backend-rutene dine.
Innholdet i CMS-et er organisert etter skjema. For eksempel kan prosjektet ditt ha skjemaer som post, category, page eller section.
Bruk skjemanavnet for å hente innhold:
const posts = await cms.schema('post').fetchAll();
For å hente et enkelt dokument etter ID:
const post = await cms.schema('post').fetchSingleById('dokument-id');
For å hente lokalisert innhold, forespør den oversatte versjonen av skjemaet:
const frenchPost = await cms
.schema('post')
.translation('fr')
.fetchSingleById('dokument-id');
For nettsteder som bruker CMS-administrerte sider, kan du hente innhold basert på gjeldende URL-bane.
const route = await cms.route.getByPath({
websiteId: 'din-nettsteds-id',
path: '/docs/komme-i-gang',
});
Ruteresponsen identifiserer siden og blokkene som skal gjengis. Applikasjonen din kan deretter hente blokkene og gjengi dem med dine egne komponenter.
const blocks = await cms.block.getByIds({
websiteId: 'din-nettsteds-id',
ids: route.blockIds,
});
async function getDocsPage(path: string) {
const route = await cms.route.getByPath({
websiteId: process.env.WEBSITE_ID,
path,
});
const blocks = await cms.block.getByIds({
websiteId: process.env.WEBSITE_ID,
ids: route.blockIds,
});
return {
title: route.label,
path: route.path,
blocks,
};
}
Du kan bruke de returnerte blokkene til å gjengi siden med applikasjonens eget komponentsystem.
Publisert CMS-innhold er trygt å mellomlagre. For de fleste nettsteder bør API-responser mellomlagres i en kort periode og revalideres når innholdet endrer seg.
Et vanlig oppsett er:
const content = await cache(
() => cms.schema('post').fetchAll(),
{
revalidate: 60,
tags: ['cms-innlegg'],
}
);
Anbefalt cache-atferd:
Forhåndsvisningsmodus lar redaktører se upubliserte endringer før de publiseres.
Et vanlig mønster er å bruke en egen forhåndsvisningsrute, for eksempel:
/docs/komme-i-gang
/cms-preview/docs/komme-i-gang
Produksjonssider bør hente kun publisert innhold. Forhåndsvisningssider kan ta imot forhåndsvisningsparametere, slik som:
?edit_mode=true
Forhåndsvisningsruter bør som regel være dynamiske og bør ikke mellomlagres statisk.
CMS-innhold kan være utilgjengelig under en bygging eller forespørsel. Applikasjonen din bør håndtere dette på en smidig måte.
Anbefalt oppførsel:
404 når en rute ikke finnes.async function getPost(id: string) {
try {
return await cms.schema('post').fetchSingleById(id);
} catch (error) {
console.error('Kunne ikke hente CMS-innlegg', error);
return null;
}
}
Hold API-nøkler private og bruk dem bare på serveren. Ikke inkluder private legitimasjoner i nettleserbundler eller offentlig JavaScript.
Bruk offentlige miljøvariabler bare for ikke-sensitive verdier som:
Bruk private miljøvariabler for:
Bruk CMS-API-et når nettstedet ditt trenger å hente strukturert innhold, gjengi CMS-administrerte ruter eller støtte redaktørenes forhåndsvisningsarbeidsflyter.
En standard integrasjon bør: