yii2中定制restful api

11个月4周前发布   1151浏览   11评论

一、apache配置
找到httpd.conf中的这两段内容:
 # AllowOverride controls what directives may be placed in .htaccess files.
# It can be "All", "None", or any combination of the keywords:
# Options FileInfo AuthConfig Limit
#
AllowOverride none
将AllowOverride none</code> 改为 <code>AllowOverride all
#LoadModule rewrite_module libexec/apache2/mod_rewrite.so
将#去掉,打开rewrite模块

二、.htaccess文件
写入下面内容,并放入yii2根目录的web目录下:webroot/yii2/web(yii2是自己命名的项目名称,webroot的Apache根目录)
	Options +FollowSymLinks
IndexIgnore /
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php
三、config/web.php配置urlManager:
         .....
'urlManager' => [
'enablePrettyUrl' => true,
'enableStrictParsing' => true,
'showScriptName' => false,
'rules' => [
[
'class' => 'yii\rest\UrlRule', 'controller' => 'user' ,
],
],
] ,
访问路径:http://loacalhost/yii2/web/users</code>(yii自动讲名词变为复数形式,具体看文档,可取消)

四、controller继承ActiveController:
namespace app\controllers;
use yii\rest\ActiveController;
class CountryController extends ActiveController
{
public $modelClass = 'app\models\Country';
...
}
额外、不同modules下urlmanger配置:
假设生成了一个modules/v1 的模块,urlmanger配置如下
'urlManager' => [
'enablePrettyUrl' => true,
'enableStrictParsing' => true,
'showScriptName' => false,
'rules' => [
[
'class' => 'yii\rest\UrlRule', 'controller' => ['v1/country'] ,
],
],
] ,
访问路径:http://loacalhost/yii2/web/v1/countries(yii自动讲名词变为复数形式,具体看文档,可取消)



评论

秋水

[嘻嘻]
10个月4天前

{"name":"路人黄"}

[微笑] [good]
10个月2天前

廉贞

[微笑]
10个月4周前

Ksana

迷宫小游戏很有意思,开源的吗
10个月4周前

qmore

@Ksana 迷宫还在测试哦,还有如第一个人通过其他会显示然后重置迷宫等功能,等完善了我会放到github的。
10个月4周前

Ksana

[good] 那一定要关注了,重置后应该随机生成一个新迷宫,不然走几遍就腻了
10个月4周前

qmore

@Ksana 是的,迷宫是后端接口随机生成json数据。
10个月4周前

贝克汉狼

6666666666666
10个月3周前

王半仙 .

[太开心]
9个月3周前

往昔

6666666666666
8个月2周前

HI

[右哼哼]
1个月9分钟前
发表评论,请先

游客