Craft som headless CMS

Skrevet av:

Hva er headless CMS?

Headless betyr at man bruker CMS-et kun til å hente rå-informasjon gjennom det. Man bygger CMS som man vanligvis gjør, men bruker ikke templates for å vise informasjonen.

Det smarte med dette er at vi kan trekke ut informasjon via et API-lag, og bruke mange flere verktøy for å hente informasjon, som f. eks. Vue.js, Angular eller bare vanlig HTML med Javascript-henting.

Dot all 2018 Berlin


Under Craft-konferansen .all 2018, fikk vi innblikk i hva Craft 3 har fått andre utviklere til å leke med. Store deler av de som presenterte snakket om headless CMS i varierende grad. Noen hadde laget vanlige nettsider med dynamisk henting av innhold, andre hadde laget komplekse mobil-apps, store API med mengder av data, og én hadde testing med innhenting av værdata (litt som det vi har laget, bare CMS) samt håndtering av devices for å samle inn denne dataen.

Det som viste seg å være en gjenganger under konferansen var hvor enkelt det var å bruke Craft til dette, siden man får mye gratis logikk fra publiseringsløsningen. Man har et ferdig system med brukere, brukerstyring og tilhørende autentisering som man lett kan bruke for å hente kun den dataen man trenger. Selvfølgelig er bilde-transforms, kategorier med relatert innhold og annen vanlig CMS-logikk også en fordel å ha tilgang på.

Eksportere data fra Craft

Når det kommer til uthenting av innhold fra Craft i denne sammenhengen ser vi noen alternativer. Pixel & Tonic har selv laget Element API, som følger med «ut av boksen». Som navnet tilsier så kan man hente ut alt som er elementer i Craft og gjøre manipulasjon av disse. Dessverre har Element API kun mulighet til å hente innhold, men ikke slette eller oppdatere innhold.

Noen har laget en plugin for GraphQL med en egen server som setter opp alt av logikk for deg. GraphQL er en måte å skrive queries og gjør om disse til kall, så man får hentet det man ber om. Denne håndterer henting, oppdatering og sletting av innhold (altså helt vanlig GET, PUT, POST og DELETE).

Vi så også eksempler på de som har laget sitt eget API via plugins/modules, som Flipbox Digital. Her er presentasjonen hvor Flipbox beskriver det de gjorde, og hvordan de bruker det i praksis. Det skal sies at dette krever en del forståelse av hvordan funksjoner er bygd opp og selve logikken i både Yii 2 og Craft, men det er fortsatt interessant for mange å ta en titt. Dette er alternativet som gir flest muligheter, da du kan importere og bruke andre biblioteker enn det Craft har støtte for. Du kan også skrive egen logikk for å få det du ønsker, samt at få tilgang til alt Yii 2 har tilgang til ettersom det nå er eksponert. Dette gir veldig store muligheter til å gjøre enda mer skreddersydde løsninger for veldig spesifikke formål.

Bruk av data fra Craft

Det var mange under årets konferanse som har fokusert på Vue.js. Dette er et rammeverk som er veldig enkelt å komme inn i og sette opp for rask testing. Det kan brukes på deler av en nettside dersom man ønsker det, noe som gjør rammeverket veldig allsidig.

Vi har også noen tungvektere her, men de som kommer opp oftest er Angular, et mye mer robust system som kan gjøre mer. Samtidig er det tyngre å komme inn i, så React kan være et annet godt alternativ.

Styrken til Craft CMS

Uansett om man bruker vanlig oppsett eller bruker Craft som headless CMS, ser vi hvor robust og allsidig det er. I nesten alle tilfellene vi fikk presentert på konferansen har folk praktisk talt snublet innom Craft CMS via en eller annen funksjonalitet de har hørt om, og blitt værende der.

Det sier noe om hvor godt gjennomtenkt systemet er. Det at det stadig videreutvikles med nye brukervennlige oppdateringer kommer nok til å bidra at de vil fortsette å ta stadig større andeler av markedet fra konkurrentene. Noe av æren skal også gå til fellesskapet av utviklere rundt Craft. Dette er et faglig sterkt miljø som aktivt bidrar med nyttige plugins og som er villig til å hjelpe med eventuelle problemer som dukker opp – samlet i Craft-slacken.

Vi bruker Google Analytics for å spore aktiviteten på nettsiden vår. Dataen bruker vi til å tilpasse design, navigasjon eller innhold. Og så sporer vi om du kom hit via en Google-annonse. Les mer i vår personvernerklæring.