Ăhendage veebisait CMS-i API-ga
CMS-i API vÔimaldab teie veebisaidil Profound CMS-ist avaldatud sisu hankida ja renderdada. Saate seda kasutada dokumentatsioonilehtede, turunduslehtede, blogide, abikeskuste vÔi mis tahes muu sisupÔhise kogemuse toetamiseks.
TĂŒĂŒpiline integratsioon koosneb kolmest osast:
Et ĂŒhendada oma rakendus CMS-iga, esitage CMS-i API URL, veebisaidi ID ja API-vĂ”ti.
const cmsConfig = {
cmsUrl: 'https://cms.dev.tryprofoun.com',
websiteId: 'your-website-id',
apiKey: process.env.PROFOUND_API_KEY,
};
Kasutage keskkonnamuutujaid vÀÀrtuste jaoks, mis erinevad keskkondade vahel:
NEXT_PUBLIC_CMS_API_URL=https://cms.dev.tryprofound.com
NEXT_PUBLIC_WEBSITE_ID=your-website-id
PROFOUND_API_KEY=your-api-key
Ărge avaldage privaatseid API-vĂ”tmeid kliendipoolses koodis. API-vĂ”tmeid tuleks kasutada teie serveris, ehitusprotsessis vĂ”i taustateenuse marsruutides.
CMS-is on sisu organiseeritud skeemide kaupa. NÀiteks vÔib teie projektil olla skeeme nagu post, category, page vÔi section.
Kasutage skeemi nime sisu toomiseks:
const posts = await cms.schema('post').fetchAll();
Ăksiku dokumendi hankimiseks ID jĂ€rgi:
const post = await cms.schema('post').fetchSingleById('document-id');
Lokaliseeritud sisu toomiseks kĂŒsige skeemi tĂ”lgitud versiooni:
const frenchPost = await cms
.schema('post')
.translation('fr')
.fetchSingleById('document-id');
Veebisaitidel, mis kasutavad CMS-i hallatavaid lehti, saate sisu tuua vastavalt praegusele URL-i teele.
const route = await cms.route.getByPath({
websiteId: 'your-website-id',
path: '/docs/getting-started',
});
Marsruudi vastus tuvastab lehe ja plokid, mida renderdada. SeejÀrel saab teie rakendus plokid tuua ja renderdada need teie enda komponentidega.
const blocks = await cms.block.getByIds({
websiteId: 'your-website-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,
};
}
Tagastatud plokke saate kasutada lehe renderdamiseks oma rakenduse komponentide sĂŒsteemi abil.
Avaldatud CMS-i sisu on ohutu vahemĂ€llu salvestada. Enamiku veebisaitide puhul salvestage API vastused lĂŒhikeseks ajaks vahemĂ€llu ja valideerige need uuesti, kui sisu muutub.
Levinud seadistus on:
const content = await cache(
() => cms.schema('post').fetchAll(),
{
revalidate: 60,
tags: ['cms-posts'],
}
);
Soovitatav vahemÀlu kÀitumine:
EelvaatereĆŸiim vĂ”imaldab toimetajatel nĂ€ha avaldamata muudatusi enne nende avaldamist.
Levinud muster on kasutada eraldi eelvaate marsruuti, nÀiteks:
/docs/getting-started
/cms-preview/docs/getting-started
Tootmislehed peaksid tooma ainult avaldatud sisu. Eelvaatelehed vÔivad aktsepteerida eelvaate parameetreid, nÀiteks:
?edit_mode=true
Eelvaate marsruudid peaksid tavaliselt olema dĂŒnaamilised ja neid ei tohiks staatiliselt vahemĂ€llu salvestada.
CMS-i sisu ei pruugi ehituse vÔi pÀringu ajal saadaval olla. Teie rakendus peab sellega elegantselt toime tulema.
Soovitatav kÀitumine:
404, kui marsruuti ei ole olemas.async function getPost(id: string) {
try {
return await cms.schema('post').fetchSingleById(id);
} catch (error) {
console.error('Failed to fetch CMS post', error);
return null;
}
}
Hoidke API-vĂ”tmed privaatsena ja kasutage neid ainult serveris. Ărge lisage privaatseid mandaate brauseri pakkidesse ega avalikku JavaScripti.
Kasutage avalikke keskkonnamuutujaid ainult mittetundlike vÀÀrtuste jaoks, nÀiteks:
Kasutage privaatseid keskkonnamuutujaid jÀrgmiseks:
Kasutage CMS-i API-t, kui teie veebisait vajab struktureeritud sisu toomist, CMS-i hallatavate marsruutide renderdamist vÔi toimetaja eelvaate töövoogude toetamist.
Standardne integratsioon peaks: