Savienojiet tīmekļa vietni ar CMS API
CMS API ļauj jūsu tīmekļa vietnei iegūt un attēlot publicētu saturu no Profound CMS. To var izmantot, lai nodrošinātu dokumentācijas lapas, mārketinga lapas, emuārus, palīdzības centrus vai jebkuru citu uz saturu balstītu pieredzi.
Tipiska integrācija sastāv no trim daļām:
Lai savienotu savu lietotni ar CMS, norādiet CMS API URL, tīmekļa vietnes ID un API atslēgu.
const cmsConfig = {
cmsUrl: 'https://cms.dev.tryprofoun.com',
websiteId: 'your-website-id',
apiKey: process.env.PROFOUND_API_KEY,
};
Izmantojiet vides mainīgos vērtībām, kas mainās starp vidēm:
NEXT_PUBLIC_CMS_API_URL=https://cms.dev.tryprofound.com
NEXT_PUBLIC_WEBSITE_ID=your-website-id
PROFOUND_API_KEY=your-api-key
Neatklājiet privātās API atslēgas klienta puses kodā. API atslēgas jāizmanto jūsu serverī, būvēšanas procesā vai aizmugursistēmas maršrutos.
Saturs CMS tiek organizēts pēc shēmām. Piemēram, jūsu projektā var būt shēmas, piemēram, post, category, page vai section.
Izmantojiet shēmas nosaukumu, lai iegūtu saturu:
const posts = await cms.schema('post').fetchAll();
Lai iegūtu vienu dokumentu pēc ID:
const post = await cms.schema('post').fetchSingleById('document-id');
Lai iegūtu lokālizētu saturu, pieprasiet shēmas tulkoto versiju:
const frenchPost = await cms
.schema('post')
.translation('fr')
.fetchSingleById('document-id');
Tīmekļa vietnēm, kas izmanto CMS pārvaldītas lapas, varat iegūt saturu, pamatojoties uz pašreizējo URL ceļu.
const route = await cms.route.getByPath({
websiteId: 'your-website-id',
path: '/docs/getting-started',
});
Maršruta atbilde identificē lapu un blokos attēlojamos elementus. Pēc tam jūsu lietotne var iegūt šos blokus un attēlot tos ar jūsu komponentēm.
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,
};
}
Varat izmantot atgrieztos blokus, lai attēlotu lapu, izmantojot savas lietotnes komponentu sistēmu.
Publicētu CMS saturu ir droši kešot. Lielākajai daļai tīmekļa vietņu kešojiet API atbildes īsu laika periodu un pārvalidējiet tās, kad saturs mainās.
Ierasts iestatījums ir:
const content = await cache(
() => cms.schema('post').fetchAll(),
{
revalidate: 60,
tags: ['cms-posts'],
}
);
Ieteicamā kešatmiņas uzvedība:
Priekšskatījuma režīms ļauj redaktoriem redzēt nepublicētās izmaiņas pirms to publicēšanas.
Izplatīts paņēmiens ir izmantot atsevišķu priekšskatījuma maršrutu, piemēram:
/docs/getting-started
/cms-preview/docs/getting-started
Produkcijas lapām jāiegūst tikai publicēts saturs. Priekšskatījuma lapas var pieņemt priekšskatījuma parametrus, piemēram:
?edit_mode=true
Priekšskatījuma maršrutiem parasti jābūt dinamiskajiem, un tie nedrīkst tikt statiski kešoti.
CMS saturs būvēšanas vai pieprasījuma laikā var nebūt pieejams. Jūsu lietotnei tas jāapstrādā korekti.
Ieteicamā uzvedība:
404, ja maršruts neeksistē.async function getPost(id: string) {
try {
return await cms.schema('post').fetchSingleById(id);
} catch (error) {
console.error('Neizdevās iegūt CMS ierakstu', error);
return null;
}
}
Glabājiet API atslēgas privātas un izmantojiet tās tikai serverī. Neiekļaujiet privātos akreditācijas datus pārlūkprogrammas paketēs vai publiskajā JavaScript.
Izmantojiet publiskos vides mainīgos tikai nesensitīvām vērtībām, piemēram:
Izmantojiet privātos vides mainīgos šādiem mērķiem:
Izmantojiet CMS API, kad jūsu tīmekļa vietnei ir jāiegūst strukturēts saturs, jāattēlo CMS pārvaldīti maršruti vai jāatbalsta redaktoru priekšskatījuma darba plūsmas.
Standarta integrācijai vajadzētu: