Povežite spletno mesto z API-jem CMS
API CMS omogoča, da vaše spletno mesto pridobi in upodobi objavljeno vsebino iz Profound CMS. Uporabite ga lahko za poganjanje strani z dokumentacijo, marketinških strani, blogov, centrov za pomoč ali katere koli druge izkušnje, ki so usmerjene v vsebino.
Običajna integracija ima tri dele:
Če želite svojo aplikacijo povezati s sistemom CMS, navedite URL API-ja CMS, identifikator spletnega mesta in ključ API.
const cmsConfig = {
cmsUrl: 'https://cms.dev.tryprofoun.com',
websiteId: 'your-website-id',
apiKey: process.env.PROFOUND_API_KEY,
};
Za vrednosti, ki se razlikujejo med okolji, uporabite okoljske spremenljivke:
NEXT_PUBLIC_CMS_API_URL=https://cms.dev.tryprofound.com
NEXT_PUBLIC_WEBSITE_ID=your-website-id
PROFOUND_API_KEY=your-api-key
Zasebnih ključev API ne izpostavljajte v odjemalski kodi. Ključi API naj bodo uporabljeni na vašem strežniku, v postopku gradnje ali v zalednih poteh.
Vsebina v sistemu CMS je organizirana po shemah. Na primer, vaš projekt lahko vsebuje sheme, kot so post, category, page ali section.
Za pridobivanje vsebine uporabite ime sheme:
const posts = await cms.schema('post').fetchAll();
Za pridobitev posameznega dokumenta po ID-ju:
const post = await cms.schema('post').fetchSingleById('document-id');
Če želite pridobiti lokalizirano vsebino, zahtevajte prevedeno različico sheme:
const frenchPost = await cms
.schema('post')
.translation('fr')
.fetchSingleById('document-id');
Za spletna mesta, ki uporabljajo strani, upravljane s CMS, lahko pridobite vsebino na podlagi trenutne poti URL.
const route = await cms.route.getByPath({
websiteId: 'your-website-id',
path: '/docs/getting-started',
});
Odziv poti določi stran in bloke, ki jih je treba upodobiti. Vaša aplikacija lahko nato pridobi bloke in jih upodobi z vašimi komponentami.
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,
};
}
Vrnjene bloke lahko uporabite za upodobitev strani z uporabo komponentnega sistema vaše aplikacije.
Objavljeno vsebino CMS je varno predpomniti. Za večino spletnih mest predpomnite odzive API za kratek čas in jih ponovno potrdite, ko se vsebina spremeni.
Pogosta nastavitev je:
const content = await cache(
() => cms.schema('post').fetchAll(),
{
revalidate: 60,
tags: ['cms-posts'],
}
);
Priporočeno vedenje predpomnilnika:
Način predogleda omogoča urednikom, da si ogledajo neobjavljene spremembe, preden so objavljene.
Pogost vzorec je uporaba ločene poti predogleda, na primer:
/docs/getting-started
/cms-preview/docs/getting-started
Proizvodne strani naj pridobijo le objavljeno vsebino. Strani predogleda lahko sprejmejo parametre predogleda, kot so:
?edit_mode=true
Poti predogleda naj bodo običajno dinamične in naj ne bodo statično predpomnjene.
Vsebina CMS je med gradnjo ali zahtevkom lahko nedostopna. Vaša aplikacija naj se s tem spopade na eleganten način.
Priporočeno vedenje:
404, kadar pot ne obstaja.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;
}
}
Ključe API hranite zasebno in jih uporabljajte le na strežniku. Zasebnih poverilnic ne vključujte v paketke brskalnika ali javni JavaScript.
Javne okoljske spremenljivke uporabite le za vrednosti, ki niso občutljive, na primer:
Zasebne okoljske spremenljivke uporabite za:
Uporabite API CMS, ko vaše spletno mesto potrebuje pridobivanje strukturirane vsebine, upodabljanje poti, ki jih upravlja CMS, ali podporo delovnim tokovom predogleda za urednike.
Standardna integracija naj: