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

时间:2014-09-06 14:25:37

标签: api rest yii2

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

2 个答案:

答案 0 :(得分: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 - >列出所有资源

可以在\yii\rest\ActiveController\yii\rest\UrlRule和相应的\yii\rest\*Action中找到网址路由规则和操作定义。

其次,如果您想在控制器中添加额外的restful API,您只需编写额外的actionXxxxx(),并在配置中,在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'
            ],
        ],
    ],
],

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

答案 1 :(得分:3)

以下是使用 Yii 2高级应用程序模板

的一个很好的示例

https://github.com/deerawan/yii2-advanced-api

此项目的更多详细信息http://budiirawan.com/setup-restful-api-yii2/

如果需要,您也可以使用 Yii 2基本应用程序模板。 您需要做的是遵循这种文件夹结构(版本为v1)(Yii doc -A module may consist of sub-modules.) (GiovanniDerks - backend sub-modules)

-modules
--api
---v1
----controllers
----models