[Yii2] Erstellen einer RESTful API

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

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.

  1. Kopieren Sie das Backend-Verzeichnis und benennen Sie es in „api“ um.
yii2 api 01
  1. 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');
  1. 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
yii2 api 02
  1. 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',
        ],
    ],
];
  1. Ändern Sie im Verzeichnis api, das wir zuvor erstellt haben, alle Wörter „backend“ in „api“.
yii2 api 03

B. Yii-Konfiguration

  1. 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';
}
  1. 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'],
            ],
        ]
        ............
    ],
    ............
];
  1. 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

  1. Laden Sie Postman,dann öffnen Sie Postman. Stellen Sie eine Anfrage an die URL „http://localhost/yii2-advanced/api/web/users“.
yii2 api 04
  1. Oder mit dem CURL-Befehl
yii2 api 05
  1. Sie können auch über einen Browser mit der URL „“http://localhost/yii2-advanced/api/web/users““ darauf zugreifen.
yii2 api 06

Neueste Artikel