Wie man in 30 Minuten eine REST API in PHP schreibt: fertiger Code

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten
```html

Wie man in 30 Minuten eine REST API in PHP schreibt



Das Erstellen einer eigenen REST API gehört zu den Schlüsselkompetenzen eines modernen Backend-Entwicklers. Viele Anfänger denken, dass dafür schwere Frameworks wie Laravel oder Symfony nötig sind. Tatsächlich kann man eine einfache REST API in reinem PHP buchstäblich in einer halben Stunde schreiben. In diesem Artikel gehen wir Schritt für Schritt durch den Prozess der Erstellung eines RESTful-Dienstes, der sofort in realen Projekten eingesetzt werden kann – von mobilen Apps bis hin zu Single-Page-Websites.



Wir werden keine externen Bibliotheken verwenden. Der gesamte Code wird in Vanilla PHP geschrieben. Sie lernen, wie man HTTP-Anfragen verarbeitet, mit JSON arbeitet, Routing organisiert und die richtigen HTTP-Statuscodes zurückgibt. Los geht's!



1. Projektstruktur und Vorbereitung



Bevor wir Code schreiben, erstellen wir 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 die index.php (falls Sie Apache verwenden);
  • config.php – eine Datei mit den Einstellungen für die Datenbankverbindung (optional).


Erstellen Sie einen Projektordner, z. B. my-rest-api, und legen Sie diese Dateien dort ab.



.htaccess einrichten



Damit alle Anfragen in unser Hauptskript gelangen, erstellen Sie eine Datei .htaccess im Projektstammverzeichnis:



RewriteEngine OnRewriteCond %{REQUEST_FILENAME} !-fRewriteCond %{REQUEST_FILENAME} !-dRewriteRule ^(.*)$ index.php [QSA,L]


Dieser Code leitet alle Anfragen, die nicht auf reale Dateien oder Ordner verweisen, an index.php weiter. Der Parameter QSA erhält die Query-String-Parameter.



2. Routing und Anfrageverarbeitung



Jetzt schreiben wir die Hauptdatei – index.php. Sie nimmt die Anfrage entgegen, ermittelt die HTTP-Methode (GET, POST, PUT, DELETE) und den Pfad und ruft dann den entsprechenden Handler auf.



Basis-Routing



Beginnen wir mit einem einfachen Beispiel. Wir erstellen ein Array von Routen und eine Funktion zu deren Verarbeitung:



<?phpheader('Content-Type: application/json');header('Access-Control-Allow-Origin: *');header('Access-Control-Allow-Methods: GET, POST, PUT, DELETE');header('Access-Control-Allow-Headers: Content-Type');

$method = $_SERVER['REQUEST_METHOD'];$path = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH);

// Schrägstrich am Ende entfernen$path = rtrim($path, '/');

// Einfaches Routingswitch (true) { case $path === '/api/users' && $method === 'GET': getUsers(); break; case $path === '/api/users' && $method === 'POST': createUser(); break; case preg_match('/^\\/api\\/users\\/(\\d+)$/', $path, $matches) && $method === 'GET': getUser($matches[1]); break; default: http_response_code(404); echo json_encode(['error' => 'Route not found']); break;}

function getUsers() { // Platzhalter echo json_encode(['users' => ['Alice', 'Bob', 'Charlie']]);}

function getUser($id) { echo json_encode(['user' => ['id' => $id, 'name' => 'User ' . $id]]);}

function createUser() { $input = json_decode(file_get_contents('php://input'), true); echo json_encode(['message' => 'User created', 'data' => $input]);}?>


Beachten Sie einige wichtige Punkte:

  • Wir setzen den Header Content-Type: application/json – alle Antworten erfolgen im JSON-Format.
  • CORS-Header erlauben Anfragen von jeder Domain (für die Entwicklung).
  • Der Body von POST/PUT-Anfragen wird über php://input gelesen.


3. Arbeiten mit der Datenbank



Eine echte API arbeitet selten mit Platzhaltern. Fügen wir eine MySQL-Verbindung über PDO hinzu. Erstellen Sie die Datei config.php:



<?phpdefine('DB_HOST', 'localhost');define(
```                

Blogs

Buchempfehlungen