ホームページ  >  記事  >  バックエンド開発  >  Yii2.0 RESTful API のバージョン管理の概要 (コード例)

Yii2.0 RESTful API のバージョン管理の概要 (コード例)

不言
不言転載
2019-01-10 11:27:022611ブラウズ

この記事では、Yii2.0 RESTful API のバージョン管理 (コード例) を紹介します。一定の参考価値があります。必要な友人は参照してください。お役に立てれば幸いです。

以前に 2 回、Yii2.0 RESTful API の構築方法や認証などの処理について記事を書きましたが、バージョン管理については触れていませんでしたので、今回はバージョン管理の実装方法についてお話します。

ゼロから始めて、段階的に構築してみましょう。ただし、一部の概念と使用法については、この記事では個別に説明しません。最初の Yii2.0 RESTful API 基本設定チュートリアルを参照してください。構成

Yii2.0のインストール

#Composer経由でインストール#これは、Yii2.0をインストールするための推奨方法です。 Composer をまだインストールしていない場合は、ここの手順に従ってインストールできます。

Composer をインストールした後、次のコマンドを実行して Composer Asset プラグインをインストールします:

composer global require "fxp/composer-asset-plugin:^1.2.0"

高度なアプリケーション テンプレートをインストールするには、次のコマンドを実行します:

composer create-project yiisoft/yii2-app-advanced yii-api 2.0.14

api という名前のバックエンド ディレクトリをコピーします。

api\config\main.php を開き、ID、controllerNamespace を変更します:

return [
    'id' => 'app-api',
    'basePath' => dirname(__DIR__),
    'controllerNamespace' => 'api\controllers',
]

高度なテンプレートを初期化します

初期化する前に、この記事をお読みください。

cd advanced
php init

common\config\main.php を開いて、URL ルーティング整形ルールを有効にします。

'urlManager' => [
    'enablePrettyUrl' => true,
    'showScriptName' => false,
    'rules' => [
    ],
],

common\config\bootstrap を開きます。 php に次のエイリアスを追加します

Yii::setAlias('@api', dirname(dirname(__DIR__)) . '/api');

ok、上記の作業は完了です。本題に入りましょう。

バージョンの詳細については、権威あるガイドを参照してください。ただし、ここでは説明しません。ここでは説明しすぎます (追記: 基本的に、やり方がわかりません...)


私の理解:

Yii2 のバージョンを異なるモジュールとして理解できます。各バージョンは新しいモジュールです。共通の v1、v2 など。


モジュールのビルド

モジュールの生成方法については、GII を使用して生成できます。

GII の構成

api/config/main-local.php ファイルを開いて次のように変更します。

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

Homestead を使用しているため、デフォルトでは GII へのアクセスが許可されていないため、 add 'allowedIPs' => ; ['127.0.0.1', '*'], それ以外の場合は Forbidden (#403) が表示されます。独自のニーズに応じて設定することも、設定しないこともできます

Generateモジュール

参照 ジェネレータに「http://your host/gii」と入力すると、モジュール ジェネレータが表示されます。「Start

Modules Class」をクリックして、「api\modules\v1\Module##」と入力します。

#モジュール ID と v1 を入力します (通常は自動的に入力されます)

[プレビュー] をクリックします

##最後に [生成] をクリックして、生成Yii2.0 RESTful API のバージョン管理の概要 (コード例)

構成モジュールYii2.0 RESTful API のバージョン管理の概要 (コード例)api/config/main.php ファイルを開き、モジュールを変更します

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

次に、urlManagerを変更します

'urlManager' => [
    'enablePrettyUrl' => true,
    'enableStrictParsing' => true,
    'showScriptName' => false,
    'rules' => [
        ['class' => 'yii\rest\UrlRule',
            'controller' => 'v1/default',
            'extraPatterns'=>[
                'GET index'=>'index',
            ],
        ],
    ],
],

上記に基づいて、Yii2.0 RESTFul APIはバージョン管理を実装しており、次のアドレスを通じてアクセスできます:

http://localhost/v1/defaults

もう少し詳しく言うと、私の上のアドレスは api/web ディレクトリにマッピングされています。実際の状況に基づいて設定してください。 構成

生成されたばかりのモジュール ファイル ディレクトリを開きます。その中に v1 ディレクトリがあることがわかります。また、コントローラーとビュー ディレクトリもあります

。実際、先ほど訪問したデフォルトのこれら 2 つのファイルは、従来の Web プロジェクトと同じです。コントローラーはビューをレンダリングします。
わかりました。私たちの将来はご存知かもしれません。コントローラー コードは modules/v1/controllers に配置されます


これは、デフォルトの GII によって生成されたコードです。私たちは API であるため、通常はビュー ディレクトリを使用しません。

残りのコントローラーを作成する

modules\v1\controllers の下に新しい UserController を作成します

<?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;;
    }
}
api/config/main.phpの urlManager を変更します

'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',
            ],
        ],
    ],
],

次の試行visit
http://localhost/v1/users/index

ok, 以上が Yii2.0 バージョン管理の実装方法です

#Formatted response

api/config/main.php を修正しますコンポーネント配列に応答

'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;
    },
],
を追加します

以上がYii2.0 RESTful API のバージョン管理の概要 (コード例)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はsegmentfault.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。