Yii2 Restful API - 添加新动作的示例

Qin*_*jie 14 api rest yii2

为了使用Yii2建立restful API,有没有人有如何在控制器中添加新动作的好例子?谢谢.

Vic*_*ong 28

我不确定你是否要求在CRUD旁边或仅仅为CRUD做额外的动作,所以我会详细说明这两种情况.

首先,框架包括\yii\rest\ActiveController提供典型的restful API操作和URL管理.

基本上,控制器预定义CRUD操作如下:

POST /resource- > actionCreate- >创建资源

GET /resource/{id}- > actionView- >读取资源

PUT, PATCH /resource/{id}- > actionUpdate- >更新资源

DELETE /resource/{id}- > actionDelete- >删除资源

GET /resource- > actionIndex- >列出所有资源

该URL路由规则和操作的定义可以发现\yii\rest\ActiveController,\yii\rest\UrlRule和各自的\yii\rest\*Action.

其次,如果您想在控制器中添加额外的RESTful API,您可以简单地编写额外的API actionXxxxx(),并在配置中添加以下URL规则urlManager:

'urlManager' => [
    'enablePrettyUrl' => true,
    'showScriptName' => false,
    'rules' => [
        [
            'class' => 'yii\rest\UrlRule',
            'controller' => ['resource'],
            'pluralize' => false,
            'extraPatterns' => [
                'POST {id}/your_preferred_url' => 'xxxxx', // 'xxxxx' refers to 'actionXxxxx'
            ],
        ],
    ],
],
Run Code Online (Sandbox Code Playgroud)

实际上,这将生成一个新的路由规则,请求POST /resource/{id}/your_preferred_url将调用actionXxxxx您的ResourceController.