1. 程式人生 > >【轉載】php如何給APP端寫接口

【轉載】php如何給APP端寫接口

style iss base64 方式 span 註意 php div ogr

如何寫好接口

  1. 目的:清楚明白所寫接口的用途
  2. 安全性:做好接口的安全性,防止接口數據泄露,做好必要的參數加密措施
  3. 按需分配: 接受值和返回值要實用,不接受和返回不需要的數據,返回值返回什麽應與使用者時時溝通
  4. 規範性:參數命名規範有意義,讓使用者一目了然;返回值要包含調用接口狀態信息,返回數據格式最好使用JSON
  5. 日誌:寫接口調用日誌,方便查到接口調用錯誤,實現監控和對接快捷

接口安全性與規範性參考

/**
     * 用戶登錄接口
     * 請求方式:post
     * 接受參數:
     * @param $mobile 用戶名         -- 可逆 通過 urlencode(base64_encode()) 加密
     * @param $pwd    加密密碼     -- 可逆,同時定義一個加密規則
     * return json
     * {"code":int,"message":string,"data":array}
     * 註意事項:
     *
     
*/ public function login() { $mobile = isset($_POST[‘mobile‘]) ? base64_decode(urldecode(escapeQuotes($_POST[‘mobile‘]))) : ‘‘; $pwd = isset($_POST[‘pwd‘]) ? escapeQuotes($_POST[‘pwd‘]) : ‘‘; $totp = isset($_POST[‘ttoken‘]) ? escapeQuotes($_POST[‘ttoken‘]) : ‘‘; $commonmodel
= self::getModel(‘common‘); try { // 檢查參數 $commonmodel->checkRight($mobile, ‘mobile‘); $commonmodel->checkRight($pwd, ‘pwd‘); $commonmodel->checkRight($totp, ‘ttoken‘); // 驗證登錄 $usersmodel = self::getModel(‘users‘);
$res = $usersmodel->userLogin($mobile, $pwd); } catch (Exception $e) { $res = array( ‘code‘ => 10000, ‘message‘ => $e->getMessage() ); } // 寫入接口日誌 $des = "IP:" . getIp() . ";請求用戶登錄接口;返回:" . $res[‘message‘]; $commonmodel->logResult(‘10001‘, $res[‘code‘], $des); echo json_encode($res); }

接受的參數,比如用戶名和密碼都進行了加密處理,密碼可以定義一個更安全的加密規則,抓包查看請求參數也不會暴露用戶數據。

調用接口寫好接口日誌,記錄調用什麽接口,返回狀態碼,接口返回詳情等等。。。

返回值參考

{
    code:0,
    message: "success",
    data: { key1: value1, key2: value2, ... }
}
  • code: 返回狀態碼,1表示成功,非1表示各種不同的錯誤,10000可以用來表示客戶端傳參錯誤
  • message: 描述信息,成功時為”success”,錯誤時則是錯誤信息
  • data: 成功時返回的數據,類型為對象或數組

不同錯誤就要定義不同的返回狀態碼,這裏舉個例子:

狀態碼表

返回值 說明
10000 執行異常,一般為客戶端傳參出錯
10001 用戶不存在
10002 密碼錯誤
10003 用戶狀態未激活
10004 redis保存值錯誤
10005 令牌(token)錯誤
10006 二維碼序列錯誤
10007 驗票錯誤
1 驗證成功,返回需要信息

10000可以定義為客戶端傳入的參數有錯,直接拋出異常,區別客戶端與服務端之間的錯誤

本文轉載至:http://blog.csdn.net/xwh670570759/article/details/52130585

【轉載】php如何給APP端寫接口