yii2 restful的介面優化和實現互相呼叫

2021-07-25 23:57:14 字數 1027 閱讀 2259

//將序列化後陣列重組成乙個大陣列,返回資料

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...