Die Projektstruktur von API Platform verstehen
Die Projektstruktur von API Platform verstehen
~12 Min. Lesezeit Zuletzt aktualisiert am 8. August 2026
Unter der Haube ist aufgaben-manager-api ein GANZ NORMALES Symfony-Projekt (GENAU die Struktur aus Kapitel 3 der Symfony-Schulung) – API Platform ergänzt lediglich ein paar zusätzliche Verzeichnisse und Bundles.
Die Projektstruktur im Überblick
Die Struktur direkt nach der Installation
aufgaben-manager-api/ ├── api/ ← das eigentliche Symfony/API-Platform-Projekt │ ├── bin/console │ ├── config/ │ │ └── packages/ │ │ └── api_platform.yaml ← API-Platform-spezifische Konfiguration │ ├── migrations/ │ ├── public/ │ ├── src/ │ │ ├── ApiResource/ ← optional: Resources ohne eigene Doctrine-Entity │ │ ├── Controller/ │ │ ├── Entity/ ← HIER leben unsere ApiResource-Entities (Kapitel 9+) │ │ └── Repository/ │ └── tests/ ├── docker/ ← Dockerfiles für die einzelnen Container └── compose.yaml ← definiert ALLE Container (php, database, mercure, ...)
Der ENTSCHEIDENDE Unterschied zur Symfony-Schulung: das eigentliche Symfony-Projekt liegt in einem api/-UNTERVERZEICHNIS, nicht direkt im Projekt-Root – der Root ist stattdessen für Docker-/Infrastruktur-Konfiguration reserviert, die MEHRERE Services (aktuell nur den API-Server, ab Kapitel 7 auch das separate React-Projekt DANEBEN, nicht darin) koordiniert.
config/packages/api_platform.yaml: die Kern-Konfiguration
api_platform:
title: Aufgaben-Manager API
version: 1.0.0
formats:
json: ['application/json']
jsonld: ['application/ld+json']
docs_formats:
json: ['application/json']
jsonopenapi: ['application/vnd.openapi+json']
html: ['text/html']title/version erscheinen SPÄTER in der automatisch generierten Swagger-UI-Dokumentation (Kapitel 6). formats legt fest, WELCHE Antwortformate die API unterstützt – jsonld (JSON-LD, mit zusätzlichen semantischen Metadaten) ist API Platforms STANDARD-Format, json ein einfacheres, für unser React-Frontend meist ausreichendes Format.
src/Entity/: der zentrale Ort für API-Ressourcen
GENAU wie in der Symfony-Schulung landen Doctrine-Entities unter src/Entity/ – der Unterschied ab Kapitel 9: dieselben Klassen tragen ZUSÄTZLICH das #[ApiResource]-Attribut und werden dadurch AUTOMATISCH zu API-Endpunkten, OHNE einen eigenen Controller schreiben zu müssen.
Das mitgelieferte Makefile
build:
docker compose build --pull --no-cache
up: ## Alle Container starten
docker compose up -d --wait
down: ## Alle Container stoppen
docker compose down --remove-orphansmake up
make downTipp: Die Distribution bringt bereits ein Makefile mit gängigen Kurzbefehlen mit – make up/make down statt der ausführlicheren docker compose-Befehle. Diese Schulung schreibt weiterhin die vollständigen docker compose-Befehle aus, damit auch ohne make GENAU nachvollziehbar bleibt, was passiert.