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.
6 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