1. <ul id="0c1fb"></ul>

      <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
      <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区

      RELATEED CONSULTING
      相關(guān)咨詢
      選擇下列產(chǎn)品馬上在線溝通
      服務(wù)時間:8:30-17:00
      你可能遇到了下面的問題
      關(guān)閉右側(cè)工具欄

      新聞中心

      這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
      如何用php實現(xiàn)API

      如何用php實現(xiàn)API?針對這個問題,這篇文章詳細介紹了相對應(yīng)的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

      金山ssl適用于網(wǎng)站、小程序/APP、API接口等需要進行數(shù)據(jù)傳輸應(yīng)用場景,ssl證書未來市場廣闊!成為成都創(chuàng)新互聯(lián)公司的ssl證書銷售渠道,可以享受市場價格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:18982081108(備注:SSL證書合作)期待與您的合作!

      1、和 WEB 開發(fā)一樣,首先需要一些相關(guān)的參數(shù),這些參數(shù),都會由客戶端傳過來,也許是 GET 也許是 POST,這個需要開發(fā)團隊相互之間約定好,或者制定統(tǒng)一規(guī)范。

      2、有了參數(shù),根據(jù)應(yīng)用需求,完成數(shù)據(jù)處理,例如:任務(wù)進度更新、APP內(nèi)購、一局游戲結(jié)束數(shù)據(jù)提交等等

      3、數(shù)據(jù)邏輯處理完之后,返回客戶端所需要用到的相關(guān)數(shù)據(jù),例如:任務(wù)狀態(tài)、內(nèi)購結(jié)果、玩家信息等等

      數(shù)據(jù)怎么返給客戶端?

      直接輸出的形式,如:JSON、XML、TEXT 等等。

      4、客戶端獲取到你返回的數(shù)據(jù)后,在客戶端本地和用戶進行交互

      臨時寫的一個簡單 API 例子:

      NULL, 'info'=>'數(shù)據(jù)錯誤', 'code'=>-201);
          exit(json_encode($output));
      }
      //走接口
      if ($a == 'get_users') {
          //檢查用戶
          if ($uid == 0) {
              $output = array('data'=>NULL, 'info'=>'The uid is null!', 'code'=>-401);
              exit(json_encode($output));
          }
          //假設(shè) $MySQL 是數(shù)據(jù)庫
          $mysql = array(
              10001 => array(
                  'uid'=>10001,
                  'vip'=>5,
                  'nickname' => 'Shine X',
                  'email'=>'979137@qq.com',
                  'qq'=>979137,
                  'gold'=>1500,
                  'powerplay'=> array('2xp'=>12,'gem'=>12,'bingo'=>5,'keys'=>5,'chest'=>8),
                  'gems'=> array('red'=>13,'green'=>3,'blue'=>8,'yellow'=>17),
                  'ctime'=>1376523234,
                  'lastLogin'=>1377123144,
                  'level'=>19,
                  'exp'=>16758,
              ),
              10002 => array(
                  'uid'=>10002,
                  'vip'=>50,
                  'nickname' => 'elva',
                  'email'=>'elva@ezhi.net',
                  'qq'=>NULL,
                  'gold'=>14320,
                  'powerplay'=> array('2xp'=>1,'gem'=>120,'bingo'=>51,'keys'=>5,'chest'=>8),
                  'gems'=> array('red'=>13,'green'=>3,'blue'=>8,'yellow'=>17),
                  'ctime'=>1376523234,
                  'lastLogin'=>1377123144,
                  'level'=>112,
                  'exp'=>167588,
              )
          );
          
          $uidArr = array(10001,10002);
          if (in_array($uid, $uidArr, true)) {
              $output = array('data' => NULL, 'info'=>'The user does not exist!', 'code' => -402);
              exit(json_encode($output));
          }
          //查詢數(shù)據(jù)庫
          $userInfo = $mysql[$uid];
          
          //輸出數(shù)據(jù)
          $output = array(
              'data' => array(
                  'userInfo' => $userInfo,
                  'isLogin' => true,//是否首次登陸
                  'unread' => 4,//未讀消息數(shù)量
                  'untask' => 3,//未完成任務(wù)
              ), 
              'info' => 'Here is the message which, commonly used in popup window', //消息提示,客戶端常會用此作為給彈窗信息。
              'code' => 200, //成功與失敗的代碼,一般都是正數(shù)或者負數(shù)
          );
          exit(json_encode($output));
      } elseif ($a == 'get_games_result') {
          //...
          die('您正在調(diào) get_games_result 接口!');
      } elseif ($a == 'upload_avatars') {
          //....
          die('您正在調(diào) upload_avatars 接口!');
      }

      對于客戶端而言,直接調(diào)用這樣的地址:

      http://localhost/api/test/index.php
      http://localhost/api/test/index.php?a=get_users
      http://localhost/api/test/index.php?a=get_users&uid=10001
      http://localhost/api/test/index.php?a=get_users&uid=10002
      http://localhost/api/test/index.php?a=get_users&uid=10003

      實際項目中,我們在開發(fā) API 應(yīng)該注意的幾個事項(僅供參考):

      1、單文件實現(xiàn)多接口的形式有很多種,例如:if..elseif.. 或 switch 或 動態(tài)方法 (也就是TP的這種訪問函數(shù)體的形式)

      2、對于數(shù)據(jù)的輸出最好用json,json具有相當(dāng)強大的跨平臺性,市場上各大主流編程語言都支持json解析,json正在逐步取代xml,成為網(wǎng)絡(luò)數(shù)據(jù)的通用格式

      3、接口安全,一定要增加接口驗證。例如,客戶端和服務(wù)端針對不同接口統(tǒng)一做好加密方式,服務(wù)端在對于每次接口需要都要進行驗證。以保證防止接口被惡意刷新或黑客惡意調(diào)用,尤其是大型商業(yè)應(yīng)用。

      4、對于線上的 API 必須保證所有接口正常且關(guān)閉所有的錯誤信息 => error_reporting(0),在輸出JSON 時,不能有任何其它輸出,否則,客戶端將解析數(shù)據(jù)失敗,直接 Crash!

      5、開發(fā) API 和 WEB 有一定的區(qū)別,如果是 WEB 的話,可能代碼出錯了,不會導(dǎo)致特別嚴重的錯誤,也許只是導(dǎo)致數(shù)據(jù)寫入和查詢失敗,也許導(dǎo)致 WEB 的某個部分錯位或亂碼。但如果是 API,直接 Crash!

      關(guān)于如何用php實現(xiàn)API問題的解答就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道了解更多相關(guān)知識。


      網(wǎng)頁名稱:如何用php實現(xiàn)API
      文章鏈接:http://www.ef60e0e.cn/article/gsdhdi.html
      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区
      1. <ul id="0c1fb"></ul>

        <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
        <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

        台山市| 星子县| 长丰县| 根河市| 鸡西市| 龙山县| 肇州县| 湛江市| 泰来县| 苍南县| 通化县| 轮台县| 邓州市| 万荣县| 珠海市| 柏乡县| 崇信县| 仙居县| 渝中区| 安宁市| 涞水县| 张家口市| 黔西| 澳门| 汕尾市| 南皮县| 神木县| 宣汉县| 井冈山市| 新沂市| 固镇县| 辰溪县| 寻乌县| 晋州市| 桃江县| 临潭县| 大连市| 孟津县| 开化县| 延庆县| 辉南县|