Headless Exponential
Diese Seite richtet sich an Anwendungsentwickler, die das Inhaltsmodell, die Bearbeitung und die Rechte von Exponential ohne seine Templates nutzen möchten: für eine mobile App, eine Single-Page-Anwendung, einen Generator für statische Websites oder ein anderes System, das die Inhalte anzeigt.
Inhalt
- Was Sie behalten und was Sie ersetzen
- Die API wählen
- Inhalte lesen
- Rich Text, Bilder und Links
- Vorschau und Entwürfe
- Caching und Leistung
- Hybrid: Templates und API zusammen
Was Sie behalten und was Sie ersetzen
| Bleibt | Wird durch Ihr Frontend ersetzt |
|---|---|
| Inhaltsklassen, Bearbeitung, Versionen, Übersetzungen, Workflows | Seiten-Templates, Menüs, das Pagelayout |
| Rollen und Richtlinien (bei jedem API-Aufruf geprüft) | Routing, URL-Verarbeitung |
| die Administration und der Layouts-Editor für die Redaktion | Rendern der Layouts |
| Suche, Medienspeicher, Bildvarianten | Zustand und Caching im Client |
Die API wählen
| API | Wofür |
|---|---|
REST v1/v2 (ezprestapi) | Knoten, Kinder und Felder lesen; Inhalte anlegen und entfernen; OAuth für Apps (Die REST-API) |
| expservices | die Funktionen der Administration als Dienste, mit Discovery und Tokens (Entfernte Dienste mit expservices) |
| ezjscore-Serverfunktionen | kleine JSON-Endpunkte, die Sie selbst schreiben (JSON-Endpunkte mit ezjscore) |
Ein Frontend, das im Browser auf einem anderen Host läuft, ruft die REST-API erst auf, wenn CORS für seinen Ursprung
in rest.ini [CorsSettings] eingeschaltet ist; standardmäßig ist es aus
(CORS für die REST-API). Eine Browser- oder mobile App, bei der sich
Benutzer anmelden, ist ein öffentlicher OAuth-Client und verwendet PKCE
(PKCE und state).
Inhalte lesen
curl -s -H "Authorization: Bearer $EXP_API_KEY" \
"https://example.com/api/ezp/v2/content/node/<node id>/list/offset/0/limit/20?ResponseGroups=Metadata,Fields"Öffentliche Inhalte können anonymen API-Benutzern nur ausgeliefert werden, wenn
rest.ini [Authentication] RequireAuthentication das erlaubt; standardmäßig ist ein Benutzer erforderlich. Für
öffentliche Frontends verwenden Sie einen Integrationsbenutzer mit reinen Leserechten und behalten seinen Schlüssel auf
Ihrem Server.
Rich Text, Bilder und Links
Jedes REST-Feld hat
type,identifier,value,idundclassattribute_id. Dervalueeines Rich-Text-Felds ist reiner Text: seine gerenderte Ausgabe ohne Tags.OutputFormat=xhtmlergänztrenderedOutput: den ganzen Knoten, von Templates gerendert, im View-Modusrest, innerhalb des Templates ausrest.ini [<Controller>_viewContent_OutputSettings] Template(rest_pagelayout.tpl). Das mitgelieferterest_pagelayout.tplist nur eine Platzhalterseite; überschreiben Sie es in Ihrem Design und ergänzen Sie einnode/view/rest.tpl, um brauchbares Markup zu erhalten.Bilder: Der REST-
valueeines Bildfelds ist nur der Pfad der Originaldatei, relativ zum Wurzelverzeichnis der Website (zum Beispielvar/<site>/storage/images/.../name.jpg); er enthält keine Bildvarianten, keine Größe und keinen Alternativtext. Adressen der Bildvarianten erhalten Sie heute so:- über die Bilddomäne von expservices,
ezjscore/call/expimage::url::<Knoten-ID>::<Attribut>::<Variante>für eine Variante (die Datei wird erzeugt, wenn sie fehlt) oderexpimage::urls::<Knoten-ID>::<Attribut>für alle konfigurierten Varianten, jeweils miturl,absolute_url, Breite, Höhe und MIME-Typ (Entfernte Dienste mit expservices); oder - indem Sie sie in Ihr
rest-View-Template schreiben ($node.data_map.<Attribut>.content.<Variante>.url) undrenderedOutputlesen.
Definieren Sie Bildvarianten für die Größen Ihres Frontends in
image.ini(Bilder und Bildvarianten).- über die Bilddomäne von expservices,
Links im Rich Text zeigen auf Adressen der Website; bilden Sie sie per URL-Alias oder Knoten-ID auf die Routen Ihres Frontends ab.
Vorschau und Entwürfe
Die Redaktion sieht die Vorschau in der Administration mit den Templates der Website. Ein Headless-Frontend braucht eine eigene Vorschau: Lesen Sie die Entwurfsversion über einen authentifizierten Aufruf mit Redakteursrechten und rendern Sie sie in einer geschützten Vorschau-Route. Planen Sie das früh ein; diesen Teil vergessen Teams am häufigsten.
Caching und Leistung
- Das REST-Framework hat einen Antwort-Cache (
rest.ini); dierest-Caches werden mit dem Tag content geleert. - Cachen Sie in Ihrem Frontend oder CDN; leeren Sie beim Veröffentlichen mit einem Workflow-Ereignis oder einem Listener, der Ihren Purge-Hook aufruft (Workflows und Ereignisse).
- Holen Sie Listen seitenweise mit Limits.
Hybrid: Templates und API zusammen
Viele Projekte behalten die Website in Templates und ergänzen eine App über die API. So bleiben Vorschau, Layouts und SEO für die Website einfach, und die App erhält dieselben Inhalte. Beginnen Sie hybrid, sofern nichts dagegen spricht.
Verwandte Seiten
- Die REST-API
- OAuth und API-Schlüssel
- Standard für APIs und Protokolle
- Freie Dokumentation: Diese Seite darf unter der GNU FDL 1.3 frei kopiert, übersetzt und verbessert werden.
Werden Sie Exponential-Partner
Partner teilen ihre Informationen, stellen Mittel bereit, geben Beiträge zurück und entwickeln die Produkte mit uns, und so wächst Exponential. Eine Partner-Website und ein Dashboard sind für Mitte 2027 geplant: Werden Sie noch heute Partner, damit wir schneller wachsen und neue Funktionen früher liefern.