標籤:yii2 中文 指南 教程 restful
Yii2相比Yii1而言,一個重大的改進是內建了功能完備的RESTful支援。
其內建RESTful支援提供了如下功能:
- 使用ActiveRecord的通用介面來快速構建原型;
- 應答格式協商(預設支援 JSON 和 XML);
- 可定製的對象序列化,支援選擇輸出哪些列;
- 請求資料的格式化以及驗證錯誤;
- 通過HTTP 動詞映射實現高效路由;
- 支援 OPTIONS 和 HEAD 動詞;
- 認證 和 鑒權;
- 支援 HATEOAS(RESTful的架構約束,超媒體即應用程式狀態);
- 結果緩衝,可使用 yii\filters\HttpCache 緩衝;
- 訪問速率限制,避免惡意攻擊和服務濫用;
- 搜尋和過濾:
- 內建資料分頁功能;
- API版本控制。
這些功能如果都是自己來實現,且還要有良好的擴充性、定製性,
還是要花費不少精力的,不過好在Yii2已經都很好的實現了並且還很容易進行擴充。
下面是一些功能的簡單介紹:
Yii2中可定製輸出變得很簡單,比如想輸出某些列或排除某些列,只需要簡單的覆蓋(override)活動記錄的fields方法即可。
Yii2中對API版本控制的支援結合了業界流行的兩種方式,一種為在URL中嵌入版本號碼(如http://api.techbrood.com/v1/users),一種是在HTTP Accept頭中指定。
Yii2以前者支援大版本,而以後者支援小版本號碼。這樣可以在簡化代碼、代碼分離和複用之間達成較好的平衡。
Yii2中的安全機制支援3種方式,HTTP BASIC AUTH,查詢參數(即在URL參數中包含存取權杖)和 開源協議 OAUTH2。
下面使用最少的語句來實現一個使用者(User)資源的完整Web服務:
首先,建立一個控制器類 app\controllers\UserController :
namespace app\controllers;use yii\rest\ActiveController;class UserController extends ActiveController { public $modelClass = ‘app\models\User‘;}
然後,修改config中的 urlManager 配置項:
‘urlManager‘ => [ ‘enablePrettyUrl‘ => true, ‘enableStrictParsing‘ => true, ‘showScriptName‘ => false, ‘rules‘ => [ [‘class‘ => ‘yii\rest\UrlRule‘, ‘controller‘ => ‘user‘], ],]
這樣就行了!你可以在你的瀏覽器中試著訪問下:http://localhost/users。
這隻是使用者列表介面,Yii2實際自動幫你建立了一整套介面:
完整功能請查閱Yii2中文指南RESTful部分:Yii2 中文權威指南
by iefreer