Heim  >  Artikel  >  Backend-Entwicklung  >  Einführung in die Versionskontrolle der Yii2.0 RESTful API (Codebeispiel)

Einführung in die Versionskontrolle der Yii2.0 RESTful API (Codebeispiel)

不言
不言nach vorne
2019-01-10 11:27:022613Durchsuche

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. ..)

Mein Verständnis:

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 generieren

Durchsuchen Geben Sie http://Ihren Host/gii in den Server ein, Sie können den Modulgenerator sehen, klicken Sie auf Start

Modules-Klasse, geben Sie ein: apimodulesv1Module

Module ID, geben Sie v1 ein (normalerweise wird es automatisch eingegeben)

Klicken Sie auf Vorschau

Einführung in die Versionskontrolle der Yii2.0 RESTful API (Codebeispiel)Klicken Sie abschließend auf „Generieren“, um zu generieren

Einführung in die Versionskontrolle der Yii2.0 RESTful API (Codebeispiel)Konfigurationsmodul

Öffnen Sie die Datei api/config/main.php, ändern Sie Module

'modules' => [
    'v1'=>[
        'class'=>'api\modules\v1\Module',
    ],
],

und ändern Sie dann urlManager

'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/defaults
Um 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

Gerade war es nur die Standardeinstellung. Der von GII für uns generierte Code liegt daran, dass wir eine API sind, sodass das Ansichtsverzeichnis von uns im Allgemeinen nicht verwendet wird.

Erstellen Sie einen neuen Rest-Controller

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 &#39;this is v1/user&#39;;
    }
}

Ä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/index
ok, 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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:segmentfault.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen