この記事では、Apache を例として取り上げます。Apache の conf ディレクトリにある httpd.conf を確認し、次のコードを見つけます。 リーリー
その前の#を削除し、見つからない場合は追加します。コードを見つける
リーリー
元のAllowOverride NoneをAllowOverride Allに変更します。次に、サイトのルート ディレクトリに次の内容の .htaccess ファイルを作成します。
YII2 実践マニュアルを参照してください。
YII2の実際の操作:
v1 フォルダーの下に新しいコントローラー フォルダー (コントローラー)、モデル フォルダー (モデル)、および Module.php 設定ファイルを作成します。
Module.php ファイルは次のとおりです:
リーリー
2 行目と 7 行目はバージョン拡張に伴って変更されます (v1->v2...)。(2) configフォルダーにmain.phpファイルを設定します
1 php
2 $params = array_merge(require (__DIR__ . '/../../common/config/params.php'), require (__DIR__ . '/../../common/config/params-local.php'), require (__DIR__ . '/params.php'), require (__DIR__ . '/params-local.php'));
3
4 return [
5 'id' => 'app-api',
6 'basePath' => dirname(__DIR__),
7 'bootstrap' => [
8 'log'
9 ],
10 'modules' => [
11 'v1' => [
12 'class' => 'api\modules\v1\Module'
13 ],
14 'v2' => [
15 'class' => 'api\modules\v2\Module'
16 ]
17 ],
18 'controllerNamespace' => 'api\controllers',
19 'components' => [
20 'user' => [
21 'identityClass' => 'common\models\User',
22 'enableAutoLogin' => false,
23 'enableSession' => false,
24 'loginUrl' => null
25 ],
26 'urlManager' => [
27 'enablePrettyUrl' => true, // 启用美化URL
28 'enableStrictParsing' => true, // 是否执行严格的url解析
29 'showScriptName' => false, // 在URL路径中是否显示脚本入口文件
30 'rules' => [
31 [
32 'class' => 'yii\rest\UrlRule',
33 'controller' => [
34 'v1/site'
35 ]
36 ],
37 [
38 'class' => 'yii\rest\UrlRule',
39 'controller' => [
40 'v2/site'
41 ]
42 ]
43 ]
44 ],
45 'log' => [
46 'traceLevel' => YII_DEBUG ? 3 : 0,
47 'targets' => [
48 [
49 'class' => 'yii\log\FileTarget',
50 'levels' => [
51 'error',
52 'warning'
53 ]
54 ]
55 ]
56 ],
57 'errorHandler' => [
58 'errorAction' => 'site/error'
59 ]
60 ],
61 'params' => $params
62 ];
main.php
注意10~17行、20~44行的组件配置,相信大家仔细阅读就能明白,此处不再赘述原理,请大家尤其注意33~35行的代码,此处表示的是v1/site控制器,随着接口控制器的增多,可以直接在数组中增加即可。本文力求快速配置出RESTful架构的实现。
(3)v2、v3表示以后的版本变化,配置都类似于v1文件夹。
数据库准备一个名为mxq_guide的数据表
<span>CREATE TABLE `mxq_guide` ( `id` int(</span>11) NOT <span>NULL</span> AUTO_INCREMENT,<span> `imgurl` varchar(</span>255) <span>DEFAULT</span> <span>NULL </span>COMMENT '图片路径'<span>,</span><span> <br /> `status` int(</span><span>11) </span><span>DEFAULT</span><span>NULL</span><span> COMMENT '1启用 0禁用',<br /></span><span> `flag` int(</span><span>11) </span><span>DEFAULT</span><span>NULL</span><span> COMMENT '1安卓 2苹果',</span><span> <br /> PRIMARY </span><span>KEY</span><span> (`id`) <br /> ) ENGINE</span><span>=MyISAM AUTO_INCREMENT=24 </span><span>DEFAULT</span><span> CHARSET=utf8 COMMENT='APP导航图';</span>
创建后请注意及时往数据库添加几条数据信息。
通过脚手架gii来创建guide.php模型(使用方法请看yii2权威指南)。生成后的文件注意改写,修改为如下形式以满足RESTful的需求。之后从models文件夹中转移到v1/models文件夹中,并注意命名空间的修改。
コントローラーはモジュール/コントローラーのファイルの下に作成されており、名前空間の変更に注意してください。
このコントローラーは通常のコントローラーとは異なり、ActiveController クラスを継承する必要があることに注意してください。20 ~ 30 行の登録のコードは RESTful アーキテクチャの access_token 承認に基づいており、現在は通過せず、その後継続的に充電されます。
ここまでで、YII2 に基づくすべての構成が基本的に完了しました。次に、API インターフェイスのテスト ツールと方法を説明します。RESTfulな测试ツールPostMAN: このセクションは、具体的には、次の試行中に図を参照して、不足の指示を提示するためのアプリケーションです。
この例では、GET メソッドがデータベースのデータを要求します。対応するのは、モジュール/コントローラー/SiteController/actionIndex メソッドです。
打*星号の位置が表示されることは、通常の効果であり、例えば、問題が発生した場合、大家は、
YII威嚇南 — 問題の原因を探索することができます。
YII2 の ActiveController はデータの分割効果を実現します。
この例では、POST メソッドがデータベースを新規作成するデータが示されています。対応するのは、モジュール/コントローラー/SiteController/actionCreate メソッドです。
次のような場合、フラグは、データ チェックの要求を満たしていない場合に、データベースのデータ層に書き込まれている場合に、対応する問題を示す可能性があります。
次に、データベースのデータを更新する PUT メソッドが示されます。対応するのは、モジュール/コントローラー/SiteController/actionUpdate メソッドです。
ここで、一番上の URL:http://api.mxq.com/v1/sites/15 に注目してください。この 15 は、データベース ID が 15 のデータを表しており、データベース ID が 15 の更新されたデータ情報を示しています。 RESTful では、データの更新および削除操作を使用する場合、ID を表形式で渡すことはできず、URL の後に指定する必要があります。 次のデモは、データベース データを削除する DELETE メソッドです。 modules/controllers/SiteController/actionDelete メソッドに対応します。 戻り値が1の場合、削除操作が正常に実行されたことを意味します。具体的な原理については、sitecontroller コントローラーの機能をよく観察してください。 上記はyii2ベースのRESTfulの簡単な紹介と実装方法とテスト結果です。間違いや漏れがございましたら、ご自由に追加してください。今後の更新はこれに基づいて行われます。 yii2 フレームワークと RESTful アーキテクチャに触れるのは初めてです。説明に間違いがある場合はご容赦ください。