Eine API ist eine Software, die die von uns erstellten Anwendungen in andere Anwendungen integriert. Der Zweck der Erstellung besteht darin, Daten zwischen den integrierten Anwendungen auszutauschen.
Die RESTful API/REST API ist die Anwendung der API(Application Programming Interface). REST (Representational State Transfer)ist eine Architektur von Kommunikationsmethoden, die das HTTP-Protokoll für den Datenaustausch verwendet, wobei diese Methode häufig in der Anwendungsentwicklung eingesetzt wird. Ziel ist es, das System leistungsfähig, schnell und einfach zu entwickeln (zu skalieren), insbesondere beim Austausch und der Kommunikation von Daten.
Der Aufbau einer REST-API in Yii ist eigentlich recht einfach. Sie können die Vorteile des bestehenden MVC-Frameworks nutzen, aber Sie erstellen verschiedene Zugangspunkte, auf die verschiedene Arten von Diensten (nicht Website-Besucher) zugreifen sollen.
Hier zeigen wir anhand eines Beispiels, wie Sie mit geringem Programmieraufwand eine Reihe von RESTful-APIs erstellen können. Das Yii, das wir verwenden werden, ist das yii2 Advanced Template.
Angenommen, Sie möchten Benutzerdaten über RESTful APIs zugänglich machen. Die Benutzertabelle in diesem Beispiel haben Sie bei der ersten Installation von Yii erstellt. Wie Sie Yii installieren, erfahren Sie auf How to Install Yii2 Advanced via Composer.
Schritte zur Erstellung einer RESTful API auf Yii2 Advanced
Weitere interessante Artikel
A. Endpunkt-APIs erstellen
In der Yii2 Advanced Vorlage haben wir ein Backend- und ein Frontend-Verzeichnis. Um die API-Funktionen zu trennen, legen wir ein neues Verzeichnis mit dem Namen „API“ als Endpunkt an.
- Kopieren Sie das Backend-Verzeichnis und benennen Sie es in „api“ um.
- Bearbeiten Sie die „common/config/bootstrap.php“Datei und fügen Sie einen Alias für „api“ hinzu.
<?php Yii::setAlias('@common', dirname(__DIR__)); Yii::setAlias('@frontend', dirname(dirname(__DIR__)) . '/frontend'); Yii::setAlias('@backend', dirname(dirname(__DIR__)) . '/backend'); Yii::setAlias('@api', dirname(dirname(__DIR__)) . '/api'); Yii::setAlias('@console', dirname(dirname(__DIR__)) . '/console');
- Kopieren Sie in das Verzeichnis „environments/dev“ das Backend-Verzeichnis und benennen Sie es in „api“ um. Das Gleiche gilt für das Verzeichnis „environments / prod“, so dass es wie das folgende Bild aussieht
- Passen Sie die Datei „environments/index.php“ wie folgt an
return [ 'Development' = > [ 'path' = > 'dev', 'setWritable' = > [ .........., 'api/runtime', 'api/web/assets', ], .............. 'setCookieValidationKey' = > [ .........., 'api/config/main-local.php', ], ], 'Production' = > [ 'path' = > 'prod', 'setWritable' = > [ .........., 'api/runtime', 'api/web/assets', ], ............. 'setCookieValidationKey' = > [ .........., 'api/config/main-local.php', ], ], ];
- Ändern Sie im Verzeichnis api, das wir zuvor erstellt haben, alle Wörter „backend“ in „api“.
B. Yii-Konfiguration
- Einen Controller erstellen
Erstellen Sie eine „UserController“Datei im Verzeichnis „api/controllers“ und kopieren Sie die folgenden Skripte
<?php namespace apicontrollers; use yii\rest\ActiveController; class UserController extends ActiveController { public $modelClass = 'common\models\User'; }
- Konfiguration von RULES AND JSON Input URL
Ändern Sie die Datei „api/config/main.php“, indem Sie die JSON-Anfrage und die URL-Regel wie folgt hinzufügen:
return [ ......... 'components' => [ 'request' => [ 'parsers' => [ 'application/json' => 'yiiwebJsonParser', ] ], ......... 'urlManager' => [ 'enablePrettyUrl' => true, 'enableStrictParsing' => true, 'showScriptName' => false, 'rules' => [ ['class' => 'yii\rest\UrlRule', 'controller' => 'user'], ], ] ............ ], ............ ];
- Erstellen Sie eine „.htaccess“-Datei im Verzeichnis „api/web/“ und kopieren Sie den folgenden Code
RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . index.php
C. API-Tests
- Laden Sie Postman,dann öffnen Sie Postman. Stellen Sie eine Anfrage an die URL „http://localhost/yii2-advanced/api/web/users“.
- Oder mit dem CURL-Befehl
- Sie können auch über einen Browser mit der URL „“http://localhost/yii2-advanced/api/web/users““ darauf zugreifen.