Background Decoration
29.6.2026Dietrich Bojko14 Min. Lesezeit

Die API From Scratch entwickeln: Symfony Routing in Contao 5

Zurück zur Übersicht
Die API From Scratch entwickeln: Symfony Routing in Contao 5
Bild mit KI generiert.
Bild mit KI generiert.
26 Views

Häufig gestellte Fragen (FAQ)

API Platform ist ein fantastisches, mächtiges Tool. Für ein dekoppeltes CMS ist es jedoch oft "Overkill". API Platform ist extrem stark darin, CRUD-Operationen (Create, Read, Update, Delete) für komplexe Entity-Graphen bereitzustellen. In unserem Headless-CMS-Szenario benötigen wir jedoch hauptsächlich hochoptimierte, stark flachgeklopfte Lese-Routen (Read-Only) für das Frontend. Indem wir die API From Scratch entwickeln, sparen wir uns den immensen Overhead von API Platform und können die Payload-Struktur zu 100 % auf die Bedürfnisse unserer React-Komponenten zuschneiden.

Aktuell blockiert unser Controller unveröffentlichte Seiten ($pageModel->published === false). Für ein echtes Redakteurs-Erlebnis musst du in Next.js einen "Draft Mode" etablieren. Du sendest dann einen geheimen Token an die Contao-API. Wenn dieser Token verifiziert wird, greift der Controller nicht auf findByIdOrAlias zu, sondern umgeht die "Published"-Prüfung, sodass der Redakteur seine Änderungen live im Next.js-Frontend sehen kann, bevor sie öffentlich werden.

Nein. Die Contao-Core-Funktion StringUtil::deserialize() oder der rohe Datenbankwert enthalten noch Tags wie {{link_url::12}}. Du musst in deinem TextNormalizer zwingend den Service contao.insert_tag.parser aufrufen (über Dependency Injection injiziert), um diese Tags in echte, relative URLs für Next.js umzuwandeln, bevor das JSON ausgeliefert wird.

Dein nächster Schritt: Die Festung absichern – API-Sicherheit & POST-Requests

Wir haben unsere API in den letzten Iterationen auf absolute Performance und saubere Datenstrukturen getrimmt. Solange das Next.js-Frontend nur Daten liest (GET-Requests), bewegen wir uns in einem relativ sicheren und gut kontrollierbaren Raum. Doch das Web ist keine Einbahnstraße.

Sobald wir den Nutzern erlauben, Daten an unser System zu senden – sei es durch ein simples Kontaktformular, einen komplexen Checkout-Prozess oder einen passwortgeschützten Mitgliederbereich –, betreten wir die kritischste Phase der Headless-Entwicklung: Mutierende POST-Requests.

Im monolithischen Betrieb übernimmt Contao die Absicherung von Formularen völlig geräuschlos im Hintergrund. Im entkoppelten Headless-Betrieb bricht dieser automatische Schutzmechanismus jedoch weg. Wir müssen die Türschließer selbst programmieren.

Im kommenden Teil 6: API-Sicherheit & Formularverarbeitung widmen wir uns kompromisslos der Härtung unseres Backends. Du wirst lernen:

  • Eigene Endpunkte absichern: Wie wir verhindern, dass unbefugte Skripte oder Bots unsere API-Routen mit Spam überfluten.

  • Token-Validierung: Die Implementierung von sicheren Handshakes zwischen dem Next.js-Frontend und dem Contao-Backend.

  • Das CSRF-Dilemma lösen: Cross-Site Request Forgery ist der Endgegner entkoppelter Systeme. Wir zeigen dir, wie du das native CSRF-Token-System von Symfony/Contao adaptierst, sodass Next.js bei jedem POST-Request einen gültigen, kryptografischen Ausweis vorlegen muss.

  • Payload-Sanitization: Vertraue niemals dem Frontend! Wie wir eingehende Formulardaten typsicher validieren, bereinigen und erst dann in die Contao-Datenbank schreiben.

Jetzt starten: Teil 6 – API-Sicherheit & Formularverarbeitung im Headless-Betrieb

Dietrich Bojko
Über den Autor

Dietrich Bojko

Senior Webentwickler

Webinteger arbeitet seit vielen Jahren produktiv mit Linux-basierten Entwicklungsumgebungen unter Windows.
Der Fokus liegt auf performanten Setups mit WSL 2, Docker, PHP, Node.js und modernen Build-Tools in realen Projekten – nicht auf theoretischen Beispielkonfigurationen.

Die Artikel dieser Serie entstehen direkt aus dem täglichen Einsatz in Kunden- und Eigenprojekten und dokumentieren bewusst auch typische Fehler, Engpässe und bewährte Workarounds.

Webseite besuchen

Das könnte Sie auch interessieren

Schreiben Sie einen Kommentar