API數據字典2018-08-16

接口異常的處理規范
一. 統一的API接口返回(錯誤信息字典)

class Err_Map{
const ERRMAP =array(
// 第一位表示的是哪個控制器
1001 => '請通過正確渠道提交',
1002 => '請輸入正確的賬號',
1003 => '密碼錯誤',
1004 => '密碼錯誤',

    2***,3**** ....
); 

public static function get( $code ){
    if(isset(ERRMAP[$code])){
        return array('errno'=>(0-$code),'errmsg'=>ERRMAP[$code]);
    }
    return array('error'=>(0-$code),'errmsg'=>'undefinded this error code');
}

}

在具體的控制器方法中
原來的寫法
json_encode(['error'=>1002,'errmsg'=>'','data'=>''])
現在
json_encode(Err_Map::get(1002));

在模型中:
list(this->errno,this->errmsg) = Err_Map::get(1004);

二. 統一的API異常處理(容錯與降低)

TryCatch 集中捕獲異常處理
try{
可能發生異常的代碼
}catch( Exception e){ echo json_decode( array('errno'=>-9999,'errmsg'=>'error.'.e->getMessage()));
}

一般用在控制器中調用模型時,為了防止客戶端崩潰
try{
model = new UserModel();uid = model->login( trim(uname), trim(pwd));
}catch(Exception $e){
echo json_encode(Err_Map::get(1000));
return false;
}

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容