首页 > 开发 > PHP > 正文

Yii2.0 RESTful API 基础配置教程详解

2024-05-04 22:41:36
字体:
来源:转载
供稿:网友

最近在做Yii2.0 RESTful API功能,找了好久的资料,才找到这类的教程,感谢该作者,以下内容根据我的项目实际情况做了一定的修改。

安装yii2.0

安装 Composer 后,您可以通过在 Web 可访问的文件夹下运行以下命令来 安装Yii应用程序模板:

composer create-project --prefer-dist yiisoft/yii2-app-basic basic

初始化高级模板

cd advanced./init

输入"./init"后会出现以下内容

Yii Application Initialization Tool v1.0

Which environment do you want the application to be initialized in?

  [0] Development
  [1] Production

  Your choice [0-1, or "q" to quit] 0

  Initialize the application under 'Development' environment? [yes|no] yes

  Start initialization ...

修改数据库连接属性

打开 commonconfigmain-local.php,配置数据库连接信息

'db' => [      'class' => 'yii/db/Connection',      'dsn' => 'mysql:host=127.0.0.1;dbname=yii',      'username' => 'root',      'password' => 'root',      'charset' => 'utf8',    ],

执行 migrate 数据库迁移

./yii migrate

拷贝backend目录,命名为api

打开apiconfigmain.php 修改id,controllerNamespace等,将所有backend替换为api:

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

打开apiconfigmain.php开启url路由美化规则

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

打开commonconfigbootstrap.php添加以下别名

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

为什么要单独创建API应用

单独创建API应用,目的是便于维护,可以避免以下问题

配置的冲突 控制器的命名不便 url美化规则冲突 分工明确frontend为前台目录;backend为后台目录;api为api目录

接下来打开 apicontrollers 新建一个User控制器,继承 yiirestActiveController,命名为 UserController,代码如下:

<?phpnamespace api/controllers;use yii/rest/ActiveController;class UserController extends ActiveController{  public $modelClass = 'common/models/User';  }

配置URL规则

为刚才的 user控制器添加url美化规则

打开 apiconfigmain.php 修改 components属性,添加下列代码:

...'urlManager' => [  'enablePrettyUrl' => true,  'enableStrictParsing' => true,  'showScriptName' => false,  'rules' => [    ['class' => 'yii/rest/UrlRule',     'controller' => 'user'    ],  ],]...            
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表