Yhdistä verkkosivusto CMS APIin
CMS API:n avulla verkkosivustosi voi hakea ja renderöidä julkaistua sisältöä Profound CMS:stä. Voit käyttää sitä dokumentaatiosivujen, markkinointisivujen, blogien, ohjekeskusten tai minkä tahansa muun sisältövetoisen kokemuksen tukemiseen.
Tyypillisessä integraatiossa on kolme osaa:
Yhdistääksesi sovelluksesi CMS:ään, anna CMS API -URL-osoitteesi, verkkosivuston tunnus ja API-avain.
const cmsConfig = {
cmsUrl: 'https://cms.dev.tryprofoun.com',
websiteId: 'your-website-id',
apiKey: process.env.PROFOUND_API_KEY,
};
Käytä ympäristömuuttujia arvoille, jotka muuttuvat ympäristöjen välillä:
NEXT_PUBLIC_CMS_API_URL=https://cms.dev.tryprofound.com
NEXT_PUBLIC_WEBSITE_ID=your-website-id
PROFOUND_API_KEY=your-api-key
Älä paljasta yksityisiä API-avaimia asiakaspuolen koodissa. API-avaimia tulisi käyttää palvelimellasi, rakennusprosessissa tai taustapalvelun reiteillä.
CMS:n sisältö on järjestetty skeemoittain. Esimerkiksi hankkeessasi voi olla skeemoja kuten post, category, page tai section.
Käytä skeeman nimeä sisällön hakemiseen:
const posts = await cms.schema('post').fetchAll();
Hae yksittäinen dokumentti tunnuksen perusteella:
const post = await cms.schema('post').fetchSingleById('document-id');
Paikallistetun sisällön hakemiseksi pyydä skeeman käännetty versio:
const frenchPost = await cms
.schema('post')
.translation('fr')
.fetchSingleById('document-id');
Verkkosivustoilla, jotka käyttävät CMS:n hallinnoimia sivuja, voit hakea sisältöä nykyisen URL-polun perusteella.
const route = await cms.route.getByPath({
websiteId: 'your-website-id',
path: '/docs/getting-started',
});
Reittivastaus tunnistaa sivun ja renderöitävät lohkot. Sovelluksesi voi sitten hakea lohkot ja renderöidä ne omilla komponenteillasi.
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,
};
}
Voit käyttää palautettuja lohkoja renderöidäksesi sivun sovelluksesi komponenttijärjestelmällä.
Julkaistun CMS-sisällön välimuistittaminen on turvallista. Useimmilla verkkosivustoilla API-vastaukset kannattaa välimuistittaa lyhyeksi ajaksi ja uudelleenvalidoida, kun sisältö muuttuu.
Yleinen asetus on:
const content = await cache(
() => cms.schema('post').fetchAll(),
{
revalidate: 60,
tags: ['cms-posts'],
}
);
Suositeltu välimuistin käyttö:
Esikatselutila antaa toimittajien nähdä julkaisemattomat muutokset ennen julkaisua.
Yleinen tapa on käyttää erillistä esikatselureittiä, esimerkiksi:
/docs/getting-started
/cms-preview/docs/getting-started
Produktion sivujen tulisi hakea vain julkaistua sisältöä. Esikatselusivut voivat hyväksyä esikatseluparametreja, kuten:
?edit_mode=true
Esikatselureittien tulisi yleensä olla dynaamisia eikä niitä tulisi välimuistittaa staattisesti.
CMS-sisältö ei välttämättä ole saatavilla rakennuksen tai pyynnön aikana. Sovelluksesi tulisi käsitellä tämä hallitusti.
Suositeltu toiminta:
404, kun reittiä ei ole olemassa.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;
}
}
Pidä API-avaimet yksityisinä ja käytä niitä vain palvelimella. Älä sisällytä yksityisiä tunnistetietoja selaimen bundleihin tai julkiseen JavaScriptiin.
Käytä julkisia ympäristömuuttujia vain ei-arkaluontoisille arvoille, kuten:
Käytä yksityisiä ympäristömuuttujia seuraaville:
Käytä CMS API:ta, kun verkkosivustosi tarvitsee hakea rakenteista sisältöä, renderöidä CMS:n hallinnoimia reittejä tai tukea toimittajan esikatseluprosesseja.
Tavanomaisen integraation tulisi: