Yii字段

通過覆蓋 fields() 和 extraFields() 方法,可以定義一些數據放入迴應中。這兩種方法之間的差別在於,前者定義了默認設置的字段,包函在響應中;而後者如果最終用戶的請求通過擴展查詢參數,之後可以在響應包函附加字段。

第1步 - 修改 models/MyUser.php 並使用以下代碼:

function($model) { return date("Y-m-d H:i:s"); } \]; } /\*\* \* @inheritdoc \*/ public static function tableName() { return 'user'; } /\*\* \* @inheritdoc \*/ public function rules() { return \[ \[\['name', 'email'\], 'string', 'max' => 255\] \]; } /\*\* \* @inheritdoc \*/ public function attributeLabels() { return \[ 'id' => 'ID', 'name' => 'Name', 'email' => 'Email', \]; } } ?>

除了默認的字段:id 和 name,這增加了一個自定義字段 - datetime。

第2步 - 在 Postman,運行通過URL : http://localhost:8080/users 

Yii字段

第3步 - 現在,修改用戶模型:models/MyUser.php 並使用以下代碼:

255\] \]; } /\*\* \* @inheritdoc \*/ public function attributeLabels() { return \[ 'id' => 'ID', 'name' => 'Name', 'email' => 'Email', \]; } } ?>

請注意,email 字段是由 extraFields()方法返回。

第4步 - 要獲取此字段的數據,運行: http://localhost:8080/users?expand=email 如下結果:

Yii字段

自定義操作

yii\rest\ActiveController 類提供了以下操作(動作) -

  • Index − 逐頁列出資源

  • View − 返回指定資源的詳細信息

  • Create − 創建一個新的資源

  • Update − 更新一個已存在的資源

  • Delete − 刪除指定的資源

  • Options − 返回支持的HTTP方法

以上所有動作在 method() 方法中聲明。

要禁用 「delete」 和 「create」 的動作,修改 UserController.php 並使用以下代碼 -

錯誤處理

當獲得一個RESTful API請求,如果該請求錯誤或出現一些意想不到的東西在服務器上發生,可以簡單地拋出一個異常。

如果能找出錯誤的原因,應該使用一個適當的 HTTP 狀態碼來拋出異常。 

Yii REST 使用以下狀態 -

  • 200 − OK/正常完成

  • 201 − 一個資源成功創建用來響應POST請求。 Location頭包含一個指向新創建資源的URL。

  • 204 − 請求被成功處理並響應但不包含內容

  • 304 − 資源沒有被修改

  • 400 − 錯誤的請求

  • 401 − 驗證失敗

  • 403 − 通過身份驗證的用戶不允許訪問指定的API端點

  • 404 − 資源不存在

  • 405 − 不被允許的方法

  • 415 − 不支持的媒體類型

  • 422 − 數據驗證失敗

  • 429 − 過多的請求

  • 500 − 內部服務器錯誤