Yii2快速構建RESTful Web服務功能簡介

來源:互聯網
上載者:User

標籤: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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.