Wie man in 30 Minuten eine REST API in PHP schreibt: für Anfänger
Die Erstellung einer eigenen REST API ist ein wichtiger Schritt für jeden Webentwickler. Eine API ermöglicht es Ihrer Anwendung, mit anderen Diensten, mobilen Apps oder dem Frontend zu kommunizieren. In diesem Artikel schauen wir uns an, wie Sie in nur 30 Minuten eine einfache, aber vollwertige REST API in reinem PHP schreiben. Sie erfahren, wie Sie HTTP-Anfragen verarbeiten, mit JSON arbeiten und eine Datenbank anbinden. Keine Frameworks – nur reines PHP und verständliche Beispiele.
Was ist eine REST API und warum wird sie benötigt?
REST (Representational State Transfer) ist ein Architekturstil zur Erstellung von Webdiensten. Eine nach den REST-Prinzipien aufgebaute API verwendet standardmäßige HTTP-Methoden zur Arbeit mit Ressourcen:
- GET – Daten abrufen (z. B. Benutzerliste);
- POST – eine neue Ressource erstellen;
- PUT – eine vorhandene Ressource aktualisieren;
- DELETE – eine Ressource löschen.
In der modernen Webentwicklung wird REST API überall eingesetzt: von mobilen Apps bis hin zu Microservices. Wenn Sie lernen, eine solche API in PHP zu erstellen, können Sie Ihre Projekte schnell mit beliebigen Clients integrieren.
Schritt 1: Einrichtung der Projektstruktur
Bevor Sie Code schreiben, erstellen Sie eine einfache Dateistruktur. Für unsere API werden nur wenige Dateien benötigt:
index.php– der Einstiegspunkt, der alle Anfragen verarbeitet;.htaccess– zur Weiterleitung aller Anfragen an index.php (falls Sie Apache verwenden);config.php– Einstellungen für die Datenbankverbindung (optional).
Erstellen Sie die Datei .htaccess im Stammverzeichnis des Projekts:
RewriteEngine OnRewriteCond %{REQUEST_FILENAME} !-fRewriteRule ^(.*)$ index.php [QSA,L]Dieser Code leitet alle Anfragen, die nicht auf vorhandene Dateien verweisen, an index.php weiter. Unsere API wird nun beliebige URLs verarbeiten, z. B. /api/users oder /api/users/1.
Schritt 2: Erstellung eines Routers und Verarbeitung von Anfragen
Öffnen Sie die Datei index.php und schreiben Sie die grundlegende Routing-Logik. Wir werden die HTTP-Methode und die URL ermitteln und dann die entsprechenden Funktionen aufrufen.
<?phpheader("Content-Type: application/json; charset=UTF-8");header("Access-Control-Allow-Origin: *");header("Access-Control-Allow-Methods: GET, POST, PUT, DELETE");header("Access-Control-Allow-Headers: Content-Type, Authorization");
$method = $_SERVER['REQUEST_METHOD'];$request = explode('/', trim($_SERVER['PATH_INFO'] ?? '/', '/'));
// Einfachster Routerswitch ($request[0] ?? '') { case 'users': handleUsers($method, $request); break; default: http_response_code(404); echo json_encode(["message" => "Route not found"]); break;}
function handleUsers($method, $request) { $id = $request[1] ?? null; switch ($method) { case 'GET': if ($id) { // Einen Benutzer abrufen echo json_encode(["message" => "Get user with id $id"]); } else { // Alle Benutzer abrufen echo json_encode(["message" => "Get all users"]); } break; case 'POST': $input = json_decode(file_get_contents("php://input"), true); echo json_encode(["message" => "Create user", "data" => $input]); break; case 'PUT': if ($id) { $input = json_decode(file_get_contents("php://input"), true); echo json_encode(["message" => "Update user with id $id", "data" => $input]); } else { http_response_code(400); echo json_encode(["message" => "ID is requ