yii2中定制restful api

9年6个月前发布   3871浏览   12评论

一、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自动讲名词变为复数形式,具体看文档,可取消)



评论

秋水

[嘻嘻]
8年5个月前

{"name":"路人黄"}

[微笑] [good]
8年5个月前

廉贞

[微笑]
8年5个月前

Ksana

迷宫小游戏很有意思,开源的吗
8年5个月前

qmore

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

Ksana

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

qmore

@Ksana 是的,迷宫是后端接口随机生成json数据。
8年5个月前

贝克汉狼

6666666666666
8年5个月前

iathanasy .

[太开心]
8年4个月前

往昔

6666666666666
8年4个月前

HI

[右哼哼]
8年8个月前

忘了时间的钟

[嘻嘻]
7年5个月前
发表评论,请先

游客