一. 拷贝backend目录,命名为api
开始url美化后正常网页无法打开404,好像是web目录在服务器层级太多
打开
api\config\main.php修改id,controllerNamespace:return [ 'id' => 'app-api', 'basePath' => dirname(__DIR__), 'controllerNamespace' => 'api\controllers', ]打开
common\config\main.php开启url路由美化规则'urlManager' => [ 'enablePrettyUrl' => true, 'showScriptName' => false, 'rules' => [ ], ],打开
common\config\bootstrap.php添加以下别名Yii::setAlias('@api', dirname(dirname(__DIR__)) . '/api');打开
api\controllers新建一个User控制器,继承yii\rest\ActiveController,命名为UserController
user控制器继承 yii\rest\ActiveController 并指定要操作的模型<?php namespace api\controllers; use yii\rest\ActiveController; class UserController extend extends ActiveController { public $modelClass = 'common\models\User'; }
二. 启用JSON 输入
- 配置
request应用程序组件的parsers属性使用yii\web\JsonParser用于JSON输入 打开配置文件
api\config\main-local.php修改为如下代码:... 'request' => [ // !!! insert a secret key in the following (if it is empty) - this is required by cookie validation 'cookieValidationKey' => 'P0r2XoT9LCUnyVlSgxBbJOqQxdCJ3i29', 'parsers' => [ 'application/json' => 'yii\web\JsonParser', ], ], ...三. 配置URL规则
- 为刚才的 user控制器添加url美化规则
打开
api\config\main.php修改components属性... 'urlManager' => [ 'enablePrettyUrl' => true, 'enableStrictParsing' => true, 'showScriptName' => false, 'rules' => [ ['class' => 'yii\rest\UrlRule', 'controller' => 'user' ], ], ] ...
四 新建api/web/.htaccess 文件(Apache)
RewriteEngine on
# If a directory or a file exists, use the request directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# Otherwise forward the request to index.php
RewriteRule . index.php五. 创建完成 RESTful API
GET /users: 逐页列出所有用户HEAD /users: 显示用户列表的概要信息POST /users: 创建一个新用户GET /users/123: 返回用户123的详细信息HEAD /users/123: 显示用户123的概述信息PATCH /users/123: andPUT /users/123: 更新用户123DELETE /users/123: 删除用户123OPTIONS /users: 显示关于末端/users支持的动词OPTIONS /users/123: 显示有关末端/users/123支持的动词

