yii2 创建基于自定义的 Rest API

yii2 creating custom based Rest API

我正在为一些计算创建我自己的基于自定义的操作,必须由 restful api 在 json 中发送。问题是当我创建从 activecontroller 继承的控制器时,然后对于索引操作它询问模型 class.

我必须将索引操作与我自己的基于自定义的计算一起使用,它不需要存储在数据库中,所以我实际上根本不需要创建模型 class。这是我第一次使用 activecontroller,所以我不确定如何让索引页按照我的需要运行。

我可以使用我想要的任何名称创建我自己的基于自定义的操作,例如

 public function actionFast()
    {
        echo "XXX";
    }

在配置里面/ web.php

'urlManager' => [
            'showScriptName' => false,
            'enablePrettyUrl' => true
            ,
            'rules' => [
                ['class' => 'yii\rest\UrlRule', 'controller' => ['Apprest/Fast'], 'extraPatterns' => ['GET dast' => 'fast']],
            ],
        ],

但我需要使用索引操作来进行各种计算,而不是我的自定义 "Fast" 操作。有办法吗?

其次,我想让这个 url 仅限于 GET url ,有没有办法让用户在他试图 post 此页面时发送到 404 错误?

如果您没有模型,您可以直接从 yii\rest\Controller 扩展并添加您需要的操作

这里你可以看到例子:

namespace api\controllers;
use yii\rest\Controller;
class MyController extends Controller
{
public function actionFast()
    {
        echo "XXX";
    }
}