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.
- Kopieren Sie den gesamten Inhalt des Verzeichnisses
backendan denselben Ort und benennen Sie die Kopie inapium. - Öffnen Sie die Datei
common/config/bootstrap.php. Fügen Sie einen Alias für das Verzeichnisapihinzu, indem Sie die folgende Zeile einfügen:Yii::setAlias('@api', dirname(dirname(__DIR__)) . '/api'); - Kopieren Sie im Verzeichnis
environmentsden Ordnerbackendsowohl indevals auch inprod. Benennen Sie jede Kopie inapium. - Bearbeiten Sie die Datei
environments/index.php. Fügen Sie Konfigurationspfade für das Verzeichnisapiin den AbschnittensetWritableundsetCookieValidationKeyhinzu. - Verwenden Sie die Funktion „Suchen und Ersetzen“ in Ihrem Code-Editor. Ersetzen Sie alle Vorkommen der Zeichenfolge
backenddurchapiin allen Dateien des neu erstelltenapi-Ordners.

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

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.


