Heim > Artikel > Backend-Entwicklung > Einführung in die Versionskontrolle der Yii2.0 RESTful API (Codebeispiel)
Dieser Artikel bietet Ihnen eine Einführung in die Versionskontrolle der Yii2.0 RESTful API (Codebeispiele). Ich hoffe, dass er für Sie hilfreich ist.
Ich habe bereits zwei Artikel darüber geschrieben, wie man die Yii2.0 RESTful API erstellt, sowie über Authentifizierung und andere Verarbeitung, aber sie betrafen nicht die Versionsverwaltung. Heute werde ich darüber sprechen, wie man die Versionsverwaltung implementiert.
Beginnen Sie einfach von vorne und erstellen Sie es Schritt für Schritt, aber einige Konzepte und Verwendung werden in diesem Artikel nicht einzeln erklärt. Zur Konfiguration können Sie sich auf das erste Yii2.0 RESTful API-Grundkonfigurations-Tutorial beziehen
Yii2.0 installieren
Über Composer installieren
Dies ist die bevorzugte Methode zur Installation von Yii2.0. Wenn Sie Composer noch nicht installiert haben, können Sie den Anweisungen hier folgen, um es zu installieren.
Führen Sie nach der Installation von Composer den folgenden Befehl aus, um das Composer Asset-Plug-in zu installieren:
composer global require "fxp/composer-asset-plugin:^1.2.0"
Um die erweiterte Anwendungsvorlage zu installieren, führen Sie den folgenden Befehl aus:
composer create-project yiisoft/yii2-app-advanced yii-api 2.0.14
Kopieren Sie das Backend-Verzeichnis mit dem Namen api
Öffnen Sie apiconfigmain.php und ändern Sie die ID, ControllerNamespace:
return [ 'id' => 'app-api', 'basePath' => dirname(__DIR__), 'controllerNamespace' => 'api\controllers', ]
Initialisieren Sie die erweiterte Vorlage
vor der Initialisierung Lesen Sie zuerst diesen Artikel
cd advanced php init
Öffnen Sie commonconfigmain.php und aktivieren Sie die URL-Routing-Verschönerungsregeln
'urlManager' => [ 'enablePrettyUrl' => true, 'showScriptName' => false, 'rules' => [ ], ],
Öffnen Sie commonconfigbootstrap.php und fügen Sie die folgenden Aliase hinzu
Yii::setAlias('@api', dirname(dirname(__DIR__)) . '/api');
OK, die Die obige Arbeit ist fertig. Kommen wir zur Sache. Weitere Informationen zur Version finden Sie in der maßgeblichen Anleitung. Ich werde hier nicht zu viel erklären. ..)
Sie können die Versionen von Yii2 als unterschiedliche Module verstehen. Jede Version ist ein neues Modul, wie z. B. das gemeinsame v1, v2 usw.
Erstellen des Moduls
Was die Generierung des Moduls betrifft, können wir GII verwenden, um es zu generieren.GII konfigurieren
Öffnen Sie die Datei api/config/main-local.php und ändern Sie sie wie folgt:if (!YII_ENV_TEST) { // configuration adjustments for 'dev' environment $config['bootstrap'][] = 'debug'; $config['modules']['debug'] = [ 'class' => 'yii\debug\Module', ]; $config['bootstrap'][] = 'gii'; $config['modules']['gii'] = [ 'class' => 'yii\gii\Module', 'allowedIPs' => ['127.0.0.1', '*'] ]; }Da ich Homestead verwende, ist der Zugriff auf GII standardmäßig nicht erlaubt, also habe ich es getan um 'allowedIPs' => ; ['127.0.0.1', '*'] hinzuzufügen, sonst wird Forbidden (#403) angezeigt. Sie können es nach Ihren eigenen Bedürfnissen konfigurieren oder nicht konfigurieren Module generierenDurchsuchen Geben Sie http://Ihren Host/gii in den Server ein, Sie können den Modulgenerator sehen, klicken Sie auf StartModules-Klasse, geben Sie ein: apimodulesv1ModuleModule ID, geben Sie v1 ein (normalerweise wird es automatisch eingegeben) Klicken Sie auf Vorschau
Klicken Sie abschließend auf „Generieren“, um zu generieren
Konfigurationsmodul
Öffnen Sie die Datei api/config/main.php, ändern Sie Module'modules' => [ 'v1'=>[ 'class'=>'api\modules\v1\Module', ], ],
'urlManager' => [ 'enablePrettyUrl' => true, 'enableStrictParsing' => true, 'showScriptName' => false, 'rules' => [ ['class' => 'yii\rest\UrlRule', 'controller' => 'v1/default', 'extraPatterns'=>[ 'GET index'=>'index', ], ], ], ],Basierend auf dem oben Gesagten wurde die Yii2.0 RESTFul API-Versionsverwaltung implementiert, und wir können über die folgende Adresse darauf zugreifen:
http://localhost/v1/defaultsUm es noch ein wenig zu sagen, die Adresse über mir wurde dem API/Web-Verzeichnis zugeordnet, bitte konfigurieren Sie es entsprechend Ihrer tatsächlichen Situation.Öffnen Sie das gerade generierte Moduldateiverzeichnis. Sie können sehen, dass sich darin ein v1-Verzeichnis befindet Es gibt auch ein Controller- und ein Ansichtenverzeichnis.
Die Standardeinstellungen, die wir gerade besucht haben, sind tatsächlich diese beiden Dateien. Der Controller rendert die Ansicht genau wie ein herkömmliches Webprojekt.
Okay, Sie wissen vielleicht, dass unser zukünftiger Controller-Code ist wird in module/v1/controllers abgelegt
Erstellen Sie einen neuen UserController unter modulev1controllers
<?php namespace api\modules\v1\controllers; use yii\rest\Controller; /** * User controller for the `v1` module */ class UserController extends Controller { /** * @return string */ public function actionIndex() { return 'this is v1/user'; } }
Ändern Sie den URLManager in api/config/main.php
'urlManager' => [ 'enablePrettyUrl' => true, 'enableStrictParsing' => true, 'showScriptName' => false, 'rules' => [ ['class' => 'yii\rest\UrlRule', 'controller' => 'v1/default', 'extraPatterns'=>[ 'GET index'=>'index', ], ], ['class' => 'yii\rest\UrlRule', 'controller' => 'v1/user', 'extraPatterns'=>[ 'GET index'=>'index', ], ], ], ],Versuchen Sie, darauf zuzugreifen
http://localhost/v1/users/indexok, das Obige ist die Implementierung der Yii2.0-Versionsverwaltung
Formatierte Antwort
Ändern Sie api/config/main.php in den Komponenten Array Antwort hinzufügen
'response' => [ 'class' => 'yii\web\Response', 'on beforeSend' => function ($event) { $response = $event->sender; $response->data = [ 'success' => $response->isSuccessful, 'code' => $response->getStatusCode(), 'message' => $response->statusText, 'data' => $response->data, ]; $response->statusCode = 200; }, ],
Das obige ist der detaillierte Inhalt vonEinführung in die Versionskontrolle der Yii2.0 RESTful API (Codebeispiel). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!