1、路由配置
'urlManager' => [
'enablePrettyUrl' => true,
'showScriptName' => false,
'enableStrictParsing' =>true,
'rules' => [
[
'class'=>'yii\rest\UrlRule',
'controller'=>['V1/default']
]
],
2、继承ActiveController 类并指定 $modelClass 属性
3、默认有 CURD 方法,通过 action() 方法 unset() 取消默认方法
4、RESPONSE 配置可以指定格式化结构:
'response'=>[
'format' => yii\web\Response::FORMAT_JSON,
'charset' => 'UTF-8',
],
5、
指定http头的Accept字段,
Accept:application/json
返回json格式,
Accept:application/xml
返回xml格式
6、可以通过在行为里面配置 指定返回数据格式
public
function
behaviors
(){ $behaviors =
parent
::behaviors(); $behaviors[
'contentNegotiator'
][
'formats'
] =
''
; $behaviors[
'contentNegotiator'
][
'formats'
][
'application/json'
] = Response::FORMAT_JSON;
return
$behaviors;}
7、对 urlManager 的 rules 配置中设置参数
'pluralize'
=> false 就可以关闭控制器名字后面多一个 s 了
8、通过对 urlManager 的 rules 指定
extraPatterns 参数配置自定义的action
- 'urlManager' => [
- 'enablePrettyUrl' => true,
- 'showScriptName' => false,
- 'rules' => [
- [
- 'class' => 'yii\rest\UrlRule',
- 'controller' => ['v1/users'],
- 'pluralize' => false,
- 'extraPatterns' => [
- 'GET versions' => 'version',
- 'GET search/<id:\d+>' => 'search',
- 'POST newusers' => 'add'
- ],
- ],
- ],
- ],