この記事では、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.14api という名前のバックエンド ディレクトリをコピーします。
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、上記の作業は完了です。本題に入りましょう。
バージョンの詳細については、権威あるガイドを参照してください。ただし、ここでは説明しません。ここでは説明しすぎます (追記: 基本的に、やり方がわかりません...)
私の理解:
モジュールの生成方法については、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 を入力します (通常は自動的に入力されます)[プレビュー] をクリックします##最後に [生成] をクリックして、生成
構成モジュールapi/config/main.php ファイルを開き、モジュールを変更します
'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', ], ], ], ],
上記に基づいて、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 'this is v1/user'; } }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', ], ], ], ],
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 サイトの他の関連記事を参照してください。