//將序列化後陣列重組成乙個大陣列,返回資料
return ['user'=>$user,'category'=>$category,'video'=>$videos];
}//獲取使用者
public function actionuser()
//獲取分類
public function actioncatrgory() {
$modelclass = $this->modelclass;
// $category = new activedataprovider([
'query' => $modelclass::find()->asarray(),
]);// 序列化物件為陣列
return yii::createobject($this->serializer)->serialize($category);
public function actionvideo() {$modelclass = $this->modelclass;
// $videos = new activedataprovider([
'query' => $modelclass::find()->asarray(),
]);// 直接返回資料提供者物件,沒有序列化為陣列
return $videos;
return yii::createobject($this->serializer)->serialize($videos);
而不是直接返回資料物件
其實yii::createobject($this->serializer)->serialize($videos);這個也就是yii/rest/serializer最終實現的方法,在每個函式的返回我們提前把它實現了,將資料提供者的資料序列為陣列,這樣我們在其他的函式呼叫這個函式的時候,返回的資料就是陣列,可以與其他的資料重新整合成乙個大陣列,最終返回。
當然,如果乙個函式,沒有在其他的函式中呼叫,那麼可以將其直接返回資料提供者物件,例如:
return $videos;
restful風格的介面
api與使用者的通訊協議,總是使用https協議。應該盡量將api部署在專用網域名稱之下。如果確定api很簡單,不會有進一步擴充套件,可以考慮放在主網域名稱下。應該將api的版本號放入url。v1 另一種做法是,將版本號放在http頭資訊中,但不如放入url方便和直觀。github採用這種做法。路徑...
後端nodejs的restful介面
var express require express express 讀取body中的json請求資料,前端post請求時傳送來的json物件 var bodyparser require body parser use bodyparser.urlencoded use bodyparser.j...
基於JSON的RESTful介面協議
xml的格式可以改為json格式 對於restful api來講,我們已經解決了傳輸協議的問題 基於http,協議約定問題 基於json。最後要解決的是服務發現問題。有個著名的基於restful api 的跨系統呼叫框架叫spring cloud,在spring cloud中有乙個元件叫eureka...