Eigene URI-Templates und Pfade konfigurieren
Eigene URI-Templates und Pfade konfigurieren
~13 Min. Lesezeit Zuletzt aktualisiert am 8. August 2026
Bisher hat API Platform ALLE Pfade AUTOMATISCH aus dem Klassennamen abgeleitet (Project → /api/projects). Der Parameter uriTemplate erlaubt es, davon GEZIELT abzuweichen.
uriTemplate auf Resource-Ebene
#[ApiResource(
uriTemplate: '/vorhaben',
operations: [
new GetCollection(),
new Get(),
new Post(),
new Put(),
new Patch(),
new Delete(),
]
)]
Ab jetzt heißt der Endpunkt /api/vorhaben statt /api/projects – die PHP-Klasse, der Entity-Name und die Datenbanktabelle bleiben davon KOMPLETT unberührt, NUR der öffentlich sichtbare API-Pfad ändert sich.
Achtung: Für UNSER Projekt bleiben wir bei den AUTOMATISCH abgeleiteten Pfaden (/api/projects, /api/tags) – dieses Beispiel dient NUR der Demonstration und wird NICHT dauerhaft übernommen, um Verwirrung mit späteren Kapiteln zu vermeiden.
uriTemplate pro einzelner Operation
Statt der GESAMTEN Resource lässt sich auch NUR EINE einzelne Operation umbenennen – praktisch, um EINEN Endpunkt sprechender zu machen, ohne alle anderen zu verändern.
new GetCollection(uriTemplate: '/projects/liste'),Jetzt existiert GET /api/projects/liste ZUSÄTZLICH zu den restlichen, UNVERÄNDERTEN Standard-Pfaden der übrigen Operationen – ein Muster, das SPÄTER (Kapitel 61) für komplett EIGENE, zusätzliche Aktionen wie /projects/{id}/archivieren wichtig wird.
Den tatsächlichen Pfad prüfen
docker compose exec php bin/console debug:router | grep -i projectGENAU wie in Kapitel 9 gezeigt, listet debug:router ALLE tatsächlich registrierten Routen auf – der ZUVERLÄSSIGSTE Weg, um zu prüfen, welcher Pfad WIRKLICH aktiv ist, statt sich auf den Quellcode allein zu verlassen.
Tipp: uriTemplate unterstützt AUCH Platzhalter wie {id} explizit – das wird ERST in Block 5 (verschachtelte Ressourcen wie /api/projects/{projectId}/tasks) wirklich gebraucht.