在Yii2 Rest API中创建自定义操作

Sar*_*mov 10 api rest yii2

我正在使用yii2,我想创建rest api.我阅读了yii2 rest api快速入门文档,但在那里你只能使用默认动作(index/view/create/delete/list ...).它工作正常

但我想创建另一个例子

public function actionPurchasedcard(){
     //some code
}
Run Code Online (Sandbox Code Playgroud)

但我不能.请帮助我,如何在yii2 Rest api中创建客户行动.

config.php文件

'urlManager' => [
    'enablePrettyUrl' => true,
    'enableStrictParsing' => true,
    'showScriptName' => false,
    'rules' => [
        [
            'class'=>'yii\rest\UrlRule',
            'controller'=>[
                'v1/resource',
            ]
        ],
    ]
]
Run Code Online (Sandbox Code Playgroud)

文件根:

htdocs/myapi/api/web/
Run Code Online (Sandbox Code Playgroud)

我这样打电话: http:// myapi/v1/resource/purchasecard

谢谢.(抱歉我的英语不好)

Mat*_*Mat 21

您可以extraPatterns在规则中设置密钥以添加新操作,如下所示:

'rules' => [
    [
        'class'=>'yii\rest\UrlRule',
        'controller'=>[
            'v1/resource',
        ],
        'extraPatterns' => [
            'GET purchasedcard' => 'purchasedcard',
        ]
    ],
]
Run Code Online (Sandbox Code Playgroud)

您可能希望向规则添加其他属性,例如prefixonly取决于您要实现的目标.查看完整的文档以了解更多信息.看看指南的例子太:有一个例子extraPatternsearch接近本指南的结束动作.