1
我正在爲某些計算創建我自己的基於自定義的操作,該操作必須由json中的restful api發送。問題是,當我創建從activecontroller繼承的控制器,然後索引操作它要求模型類。yii2創建基於定製的Rest API
我必須使用索引動作與我自己的基於自定義的計算,這不需要存儲在數據庫中,所以我實際上不需要創建模型類。這是我第一次使用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']],
],
],
而是我自定義的「快速」行動我需要使用索引操作各種計算。有沒有辦法做到這一點?
其次,我想使這個URL限制爲只有GET的URL,有沒有辦法讓用戶發送404錯誤,因爲他試圖發佈在這個頁面上?
所以這意味着我應該創建所有的錯誤列表,包括404等,也必須手動創建頭信息,因爲我想發送的文檔應該是json格式?請詳細說明您的答案 – wolvorinePk 2015-02-10 16:47:59
所有與yii \ rest \ Controller中實現的rest API相關的東西請查看源代碼,您將看到。所以如果你使用這個控制器,你只需要添加你的操作。 如果你想看看activecontroller的源代碼,那麼你會看到這個控制器從yii \ rest \ Controller擴展。 它所做的只是爲索引,更新等主動記錄添加動作... 所以如果你想創建沒有活動記錄的休息API,你只需要從其餘控制器擴展並添加你的動作 – 2015-02-10 18:59:11
在這裏你可以看到例如: ' namespace api \ controllers; 使用yii \ rest \ Controller; class MyController extends Controller { public function actionFast() { echo「XXX」; } – 2015-02-10 19:01:25