Eine Content-API ist eine Schnittstelle, über die andere Anwendungen die Inhalte eines CMS abrufen. Ausgeliefert werden sie maschinenlesbar, in der Regel als JSON, und nicht als fertige Seite.
- Content-API
Eine Schnittstelle, über die andere Anwendungen die Inhalte eines CMS abrufen.
Beispiel: „Die App holt ihre Texte über die Content-API aus demselben System wie die Website.“Die Abkürzung API steht für Application Programming Interface, auf Deutsch etwa Programmierschnittstelle.
Grundlage jedes Headless-Aufbaus und bei einem Decoupled CMS eine zusätzliche Möglichkeit neben der eigenen Ausgabe.
Was eine brauchbare Content-API können muss
Vier Dinge. Alle Felder ausliefern und nicht nur eine Auswahl. Verweise auflösen, sodass die abrufende Anwendung nicht aus rohen Kennungen selbst zusammensetzen muss. Filtern und sortieren, damit nicht alles geholt und erst danach aussortiert wird. Und Seitenweise ausliefern, damit große Bestände nicht an einem Stück kommen.
Der zweite Punkt wird am häufigsten übersehen und ist der teuerste. Wenn eine Schnittstelle Bildfelder als Kennung ohne Pfad und Abmessungen liefert, baut jede abrufende Anwendung dieselbe Auflösungslogik erneut.
Was beim Zwischenspeichern zu klären ist
Wie die abrufende Anwendung von einer Änderung erfährt. Wer bei jedem Seitenaufruf frisch abruft, verschenkt die Geschwindigkeit; wer zwischenspeichert, zeigt alte Inhalte, bis der Speicher abläuft.
Der saubere Weg ist eine Benachrichtigung des CMS an die abrufende Anwendung, sobald sich etwas geändert hat. Das ist ein zusätzlicher Baustein, der vor der Entscheidung für einen entkoppelten Aufbau eingeplant gehört.
Was an Zugriffsschutz dazugehört
Eine Antwort auf die Frage, wer abrufen darf. Eine offene Schnittstelle gibt alle Inhalte an jeden heraus, der die Adresse kennt, und das schließt Entwürfe ein, wenn sie abrufbar sind.
Üblich ist ein Schlüssel je abrufender Anwendung, dazu eine Begrenzung der Abrufe je Zeitraum. Für die Vorschau braucht es einen eigenen Zugang, weil dort unveröffentlichte Stände ausgeliefert werden.