筋斗雲介面程式設計 常用操作(二)

2021-07-27 16:58:31 字數 1863 閱讀 1800

函式應返回符合介面原型中描述的物件,框架會將其轉為最終的json字串。

比如登入介面要求返回

因而在api_login中,返回結構相符的物件即可:

$ret = [

"id" => $id,

"_isnew" => 1

];return $ret;

最終返回的json示例:

[0, ]
如果介面原型中沒有定義返回值,框架會自動返回字串」ok」。比如介面api_logout沒有呼叫return,則最終返回的json為:

[0, "ok"]
[異常返回]如果處理出錯,應返回乙個錯誤物件,這通過丟擲myexception異常來實現,比如

throw new myexception(e_authfail, "bad password", "密碼錯誤");
它最終返回的json為:

[-1, "密碼錯誤", "bad password"]
分別表示[錯誤碼, 顯示給使用者看的錯誤資訊, 除錯資訊],一般除錯資訊用英文,在各種編碼下都能顯示,且內容會詳細些;錯誤資訊一般用中文,提示給終端使用者看。

也可以忽略錯誤資訊,這時框架返回錯誤碼對應的預設錯誤資訊,如

throw new myexception(e_authfail, "bad password");
最終返回json為:

[-1, "認證失敗", "bad password"]
甚至直接:

throw new myexception(e_authfail);
最終返回json為:

[-1, "認證失敗"]
常用的其它返回碼還有e_param(引數錯), e_forbidden(無許可權操作)等:

const e_abort = -100; // 要求客戶端不報錯

const e_param=1; // 引數不合法

const e_noauth=2; // 未認證,一般要求前端跳轉登入頁面

const e_db=3; // 資料庫錯

const e_server=4; // 伺服器錯

const e_forbidden=5; // 無操作許可權,不允許訪問

[立即返回]介面除了通過return來返回資料,還可以丟擲directreturn異常,立即中斷執行並返回結果。

pic() -> 內容
function

api_pic

()

示例:查詢天氣介面

weather(areaid) ->
在實現時,呼叫第三方服務介面來獲取天氣,由於第三方已經返回json資料,無須再解碼、編碼,直接包裝成筋斗雲格式返回即可:

function

api_weather

() // 將已編碼好的json資料報裝成筋斗雲返回格式

echo

"[0, $rv]";

throw

new directreturn();

}

上面在處理失敗時,呼叫函式addlog用於將日誌返回給前端,便於測試模式下檢視。還可以用logit函式記錄到服務端檔案中。

筋斗雲介面程式設計 常用操作(一)

函式mparam用來取必傳引數 m表示mandatory 引數既可以用url引數,也可以用post引數傳遞。如果是取乙個可選引數,可以用param函式。與直接用php的 get等變數相比,param mparam可指定引數型別,如 取id引數,特別地,對id引數會返回乙個整數。id param id...

筋斗雲介面程式設計

隨著移動網際網路的快速發展,各行業對手機應用開發需求旺盛。應用開發一般分為前端和後端,後端關注資料和業務,需要對前端各類應用 如安卓應用 蘋果應用 h5應用等 提供基於http協議的互動介面。筋斗雲使用php語言開發的,實現了 分布式物件訪問與許可權控制架構 daca 中的規約,提供的http介面符...

筋斗雲介面程式設計 虛擬字段(二)

計算字段 在定義虛擬欄位時,res 也可以是乙個計算值,或乙個很複雜的子查詢。例如表orderitem是ordr物件的乙個子表,表示訂單中每一項產品的名稱 數量 ordr id,userid,status 2 amount,dscr l orderitem id,orderid,name,qty,p...