StartPHP-FrameworkRESTful API mit Yii2 erstellen: Kompletter Leitfaden für Anfänger

RESTful API mit Yii2 erstellen: Kompletter Leitfaden für Anfänger

Dieser umfassende Leitfaden beschreibt praktische Schritte zum Erstellen einer RESTful API mit der Yii2 Advanced-Vorlage. Sie lernen die Endpunktkonfiguration, die Erstellung von Controllern und API-Testmethoden für die Datenbereitstellung. Dieses Tutorial richtet sich an Entwickler, die eine moderne und skalierbare REST-Architektur implementieren möchten.

Eine Application Programming Interface (API) ist eine Software-Schnittstelle, die die Integration und den Datenaustausch zwischen Anwendungen erleichtert. Eine RESTful API ist eine API-Implementierung, die den Prinzipien der REST-Architektur (Representational State Transfer) folgt. Diese Architektur nutzt das standardmäßige HTTP-Protokoll für die Kommunikation, was sie zu einer leistungsstarken, skalierbaren und einfach zu entwickelnden Lösung macht.

Der Aufbau einer RESTful API in Yii2 kann effizient durchgeführt werden. Das Framework bietet eine robuste MVC-Grundlage und integrierte Unterstützung für die REST-Entwicklung. Dieser Artikel führt Sie durch die Erstellung eines separaten API-Endpunkts, der sich von der typischen Frontend- und Backend-Logik unterscheidet.

Wir verwenden eine Fallstudie zur Bereitstellung von Daten aus einer user-Tabelle. Die Grundannahme ist, dass Sie die Yii2 Advanced-Vorlage erfolgreich installiert haben. Falls nicht, können Sie sich in der offiziellen Yii Framework-Dokumentation über die Installation informieren.

Schritte zur Implementierung einer RESTful API in Yii2

Der Implementierungsprozess besteht aus drei Hauptphasen: Endpunktvorbereitung, Anwendungskonfiguration und Tests. Lassen Sie uns jede Phase im Detail besprechen.

1. Erstellen der API-Verzeichnisstruktur

Der erste Schritt besteht darin, eine spezielle Arbeitsumgebung für die API zu erstellen. In der Yii2 Advanced-Vorlage erstellen wir ein neues Anwendungsverzeichnis namens api.

  1. Kopieren Sie den gesamten Inhalt des Verzeichnisses backend an denselben Ort und benennen Sie die Kopie in api um.
  2. Öffnen Sie die Datei common/config/bootstrap.php. Fügen Sie einen Alias für das Verzeichnis api hinzu, indem Sie die folgende Zeile einfügen:
    Yii::setAlias('@api', dirname(dirname(__DIR__)) . '/api');
  3. Kopieren Sie im Verzeichnis environments den Ordner backend sowohl in dev als auch in prod. Benennen Sie jede Kopie in api um.
  4. Bearbeiten Sie die Datei environments/index.php. Fügen Sie Konfigurationspfade für das Verzeichnis api in den Abschnitten setWritable und setCookieValidationKey hinzu.
  5. Verwenden Sie die Funktion „Suchen und Ersetzen“ in Ihrem Code-Editor. Ersetzen Sie alle Vorkommen der Zeichenfolge backend durch api in allen Dateien des neu erstellten api-Ordners.
Erstellen eines api-Verzeichnisses aus einer backend-Kopie in Yii2
Abbildung 1: Der Prozess des Duplizierens des backend-Verzeichnisses in api.

2. Konfigurieren des Controllers und der URL-Regeln

Sobald die Struktur fertig ist, besteht der nächste Schritt darin, den Controller zu konfigurieren, der die API-Anfragen verarbeitet.

  1. Erstellen Sie den API-Controller. Erstellen Sie eine neue Datei namens UserController.php im Verzeichnis api/controllers. Füllen Sie sie mit dem folgenden Code:
    <?php
    namespace api\controllers;
    use yii\rest\ActiveController;
    
    class UserController extends ActiveController
    {
        public $modelClass = 'common\models\User';
    }
    Dieser Controller erbt von ActiveController, der automatisch vollständige RESTful-Endpunkte (GET, POST, PUT, DELETE) für das User-Modell bereitstellt.
  2. Konfigurieren Sie den URL-Manager. Öffnen Sie die Datei api/config/main.php. Fügen Sie die Komponenten request und urlManager im components-Array hinzu oder ändern Sie sie:
    'components' => [
        'request' => [
            'parsers' => [
                'application/json' => 'yii\web\JsonParser',
            ]
        ],
        'urlManager' => [
            'enablePrettyUrl' => true,
            'enableStrictParsing' => true,
            'showScriptName' => false,
            'rules' => [
                ['class' => 'yii\rest\UrlRule', 'controller' => 'user'],
            ],
        ],
    ],
    Diese Konfiguration aktiviert das Parsing von JSON-Eingaben und definiert Routing-Regeln für den User-Controller.
  3. Konfigurieren Sie den Webserver (optional). Für Apache-Server erstellen Sie eine .htaccess-Datei im Ordner api/web mit folgendem Inhalt:
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . index.php
    Diese Datei leitet alle Anfragen an die Hauptdatei index.php von Yii2 weiter.

3. Testen der API-Endpunkte

Sobald die Konfiguration abgeschlossen ist, können Sie die erstellten API-Endpunkte testen. Hier sind einige häufig verwendete Testmethoden.

  1. Verwendung von Postman. Laden Sie Postman herunter und installieren Sie es. Erstellen Sie eine neue Anfrage mit der Methode GET und der URL: http://localhost/[Ihr-Projektname]/api/web/users. Bei Erfolg erhalten Sie eine JSON-Antwort mit Benutzerdaten.
  2. Verwendung von cURL. Führen Sie den folgenden Befehl in einem Terminal oder einer Eingabeaufforderung aus:
    curl -H "Accept: application/json" "http://localhost/[Ihr-Projektname]/api/web/users"
  3. Zugriff über den Browser. Öffnen Sie die Endpunkt-URL in einem Browser. Diese Methode eignet sich jedoch in der Regel nur für einfache GET-Anfrage-Tests.
Beispielergebnis des RESTful API Yii2-Tests in Postman
Abbildung 2: Testergebnis für den GET /users-Endpunkt mit Postman.

Nachdem Sie alle oben genannten Schritte abgeschlossen haben, haben Sie erfolgreich eine grundlegende RESTful API in Yii2 erstellt. Für die weitere Entwicklung sollten Sie Authentifizierungsmechanismen (wie JWT), Autorisierung, Ratenbegrenzung und eine gute API-Dokumentation hinzufügen. Konsultieren Sie stets die offizielle Yii2-Dokumentation, um sicherzustellen, dass Ihre Implementierung aktuellen Best Practices folgt.

Neueste Artikel