78 Dokumentationen verfügbar

Wissensdatenbank

REST API Erstellen Anleitung

Zuletzt aktualisiert: 09.01.2026 um 18:23 Uhr

REST API erstellen: Komplette Anleitung für Einsteiger

Eine REST API ermöglicht die Kommunikation zwischen verschiedenen Systemen. In dieser Anleitung zeigen wir, wie Sie eine eigene REST API mit PHP erstellen – von den Grundlagen bis zur Authentifizierung.

Was ist eine REST API?

REST (Representational State Transfer) ist ein Architekturstil für Schnittstellen. Eine REST API ermöglicht es, Daten zwischen Client und Server über HTTP auszutauschen.

Die wichtigsten HTTP-Methoden

Methode Zweck Beispiel
GET Daten abrufen Alle Benutzer laden
POST Neue Daten erstellen Neuen Benutzer anlegen
PUT Daten aktualisieren Benutzer bearbeiten
DELETE Daten löschen Benutzer entfernen

Grundstruktur einer REST API

1. Projekt-Struktur

/api
  ├── index.php        (Router)
  ├── config.php       (Datenbank-Config)
  ├── users.php        (User-Endpoints)
  └── .htaccess        (URL-Rewriting)

2. Einfacher Router (index.php)

<?php
header("Content-Type: application/json; charset=UTF-8");
header("Access-Control-Allow-Origin: *");
header("Access-Control-Allow-Methods: GET, POST, PUT, DELETE");

$method = $_SERVER['REQUEST_METHOD'];
$path = $_GET['path'] ?? '';

switch($path) {
    case 'users':
        require 'users.php';
        break;
    default:
        http_response_code(404);
        echo json_encode(["error" => "Endpoint nicht gefunden"]);
}
?>

3. User-Endpoint (users.php)

<?php
require 'config.php';

switch($method) {
    case 'GET':
        // Alle User abrufen
        $stmt = $pdo->query("SELECT id, name, email FROM users");
        echo json_encode($stmt->fetchAll(PDO::FETCH_ASSOC));
        break;
        
    case 'POST':
        // Neuen User erstellen
        $data = json_decode(file_get_contents("php://input"), true);
        $stmt = $pdo->prepare("INSERT INTO users (name, email) VALUES (?, ?)");
        $stmt->execute([$data['name'], $data['email']]);
        echo json_encode(["id" => $pdo->lastInsertId()]);
        break;
        
    case 'DELETE':
        // User löschen
        $id = $_GET['id'] ?? null;
        $stmt = $pdo->prepare("DELETE FROM users WHERE id = ?");
        $stmt->execute([$id]);
        echo json_encode(["success" => true]);
        break;
}
?>

URL-Rewriting mit .htaccess

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?path=$1 [QSA,L]

Damit wird aus /api/users automatisch /api/index.php?path=users.

Authentifizierung mit API-Key

<?php
function checkApiKey() {
    $headers = getallheaders();
    $apiKey = $headers['X-API-Key'] ?? '';
    
    if ($apiKey !== 'DEIN_GEHEIMER_KEY') {
        http_response_code(401);
        echo json_encode(["error" => "Ungültiger API-Key"]);
        exit;
    }
}

// Am Anfang jedes Endpoints aufrufen
checkApiKey();
?>

HTTP Status Codes

Code Bedeutung Wann verwenden
200 OK Erfolgreiche Anfrage
201 Created Ressource erstellt (POST)
400 Bad Request Ungültige Anfrage
401 Unauthorized Nicht authentifiziert
404 Not Found Ressource nicht gefunden
500 Server Error Interner Fehler

Best Practices

  • Versionierung: /api/v1/users für spätere Updates
  • JSON verwenden: Standard für moderne APIs
  • HTTPS: Immer verschlüsselt übertragen
  • Rate Limiting: Anfragen pro Minute begrenzen
  • Dokumentation: Alle Endpoints dokumentieren
💡 Tipp: Mit Enjyn Hosting können Sie Ihre API auf deutschen Servern hosten – DSGVO-konform und mit schneller Anbindung.

Weitere Informationen