为了使用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.
| 归档时间: |
|
| 查看次数: |
20311 次 |
| 最近记录: |