一、先简单回答两个问题,服务端的开发

Android站点表示他们将可以发布编程模型、工具盒文档让PHP在Android上实现应用,2、为什么选择 PHP 作为开发服务端的首选,一起来理解 RESTful 架构 更深入了解API开发,这个帖子写给不太了解PHP与API开发的人,2、为什么选择 PHP 作为开发服务端的首选,1、PHP 可以开发客户端,一、先简单回答两个问题

4、对于线上的 API 必得确定保障全体接口符合规律且关闭全体的错误新闻 =>
error_reporting,在输出JSON
时,不可能有任何别的输出,不然,顾客端将会赢得错误的数据新闻,98%一直促成客商端
Crash!

 

三、实际项目中,大家在开拓 API 应该静心的多少个事项:

三、实际项目中,我们在付出 API 应该小心的多少个事项(仅供参考卡塔 尔(阿拉伯语:قطر‎:
1、单文件落成多接口的样式有广大种,比如:if..elseif.. 或 switch 或
动态方法 (也正是TP的这种访谈函数体的花样)
2、对于数据的出口最佳用json,json具备非凡强大的跨平台性,市镇上各大主流编制程序语言都支持json深入分析,json正在稳步代替xml,成为网络数据的通用格式
3、接口安全,应当要扩大接口验证。举例,客商端和服务端针对分化接口统风流洒脱做好加密方法,服务端在对于每一趟接口须求都要进行表达。以承保防止接口被恶心刷新或红客恶意调用,尤其是重型经济贸易利用。
4、对于线上的 API 必得保障具有接口平常且关闭全体的错误音信 =>
error_reporting(0),在出口JSON
时,不可能有其余别的输出,不然,顾客端将解析数据败北,直接 Crash!
5、开辟 API 和 WEB 有一定的区分,假若是 WEB
的话,只怕代码出错了,不会导致非常严重的谬误,也许只是招致数据写入和询问失利,恐怕以致WEB 的某些部分错位或乱码。但倘诺是 API,间接 Crash!
6、做接口开拓,不建议采取框架开拓,原因包涵起来有两点(其实笔者有一点冒风险的,自身也是
TPer 风流倜傥枚,终归那是TP的官方网址卡塔 尔(英语:State of Qatar):
  1卡塔 尔(阿拉伯语:قطر‎客户端平常对服务端的响应速度有非常高须要,由此,使用最原生态的 PHP
完结接口开拓,是最神速的,若是用到了框架,还亟需加载种种无需多余的公文,就好比夏日穿了件冬天的衣着。试想,你在玩手提式有线电话机的时候,使用一个用到随意一个操作,等半天才有景况,你受的了吧?

2、为何选择 PHP 作为开荒服务端的首推?

做过 API 的人应有了然,其实开辟 API 比开拓 WEB
更精短,但或者逻辑更头昏眼花,因为 API
其实正是数码输出,不用展现页面,所以也就不设有 MVC(API 独有 M 和
C卡塔 尔(英语:State of Qatar),
1、和 WEB
开荒雷同,首先需求有些有关的参数,那么些参数,都会由顾客端传过来,只怕是
GET 大概是 POST,那个须求支付组织相互之间约定好,或许制订统意气风发标准。
2、有了参数,依据使用要求,完结多少管理,举例:职责进程更新、电脑软件内购、风姿浪漫局游戏甘休数据交由等等
3、数据逻辑管理完之后,重临看客端所需求选拔的连锁数据,比方:职分意况、内购结果、游戏发烧友新闻等等
数量怎么返给顾客端?
直白出口的样式,如:JSON、xml、TEXT 等等。
4、顾客端获取到您回来的数额后,在顾客端本地和顾客进行相互作用

3、数据逻辑管理完事后,再次回到客商端所急需运用的相关数据,譬如:职责情形、内购结果、游戏的使用者音讯等等

1、PHP 可以付出顾客端?
答:不得以,因为PHP是脚本语言,是背负达成 B/S架构 或 C/S架构的S部分,即:服务端的支出。(别去郁结 GTK、WinBinder卡塔 尔(英语:State of Qatar)

答:跨平台(能够运作在UNIX、LINUX、WINDOWS、Mac
OS下卡塔尔、低消耗、运营功效高、MySQL的宏观搭档,本身是无偿开源的,……

2、为什么选取 PHP 作为开辟服务端的首要推荐?
答:跨平台(能够运作在UNIX、LINUX、WINDOWS、Mac
OS下卡塔尔国、低消耗(PHP消耗一定少的系统财富卡塔 尔(英语:State of Qatar)、运营作用高(相对来说卡塔 尔(阿拉伯语:قطر‎、MySQL的八面见光搭档,本身是无偿开源的,……

3、接口安全,必定要扩展接口验证。举例,顾客端和服务端针对差别接口统黄金时代做好加密方法,服务端在对于每一次接口要求都要举办表明。以保障幸免接口被恶心刷新或红客恶意调用,非常是重型经济贸易利用。

一时写的多个回顾 API 例子:

本条也会有人纠缠,接口效能与平稳,还得看编码的人,有的人可能写的还不及框架跑的快,也会有人感到用框架没什么难题,这里只是提议,关键看本人的莫过于情形,同一时间建议代码上线前压测一下

  1. <?php
  2. $output = array();
  3. $a = @$_GET[‘a’] ? $_GET[‘a’] : ”;
  4. $uid = @$_GET[‘uid’] ? $_GET[‘uid’] : 0;
    1. if (empty($a)) {
  5.     $output = array(‘data’=>NULL, ‘info’=>’坑爹啊!’, ‘code’=>-201);
  6.     exit(json_encode($output));
  7. }
    1. //走接口
  8. if ($a == ‘get_users’) {
  9.     //检查客户
  10.     if ($uid == 0) {
  11.         $output = array(‘data’=>NULL, ‘info’=>’The uid is null!’, ‘code’=>-401);
  12.         exit(json_encode($output));
  13.     }
    1.     //要是 $mysql 是数据库
  14.     $mysql = array(
  15.         10001 => array(
  16.             ‘uid’=>10001,
  17.             ‘vip’=>5,
  18.             ‘nickname’ => ‘Shine X’,
  19.             ’email’=>’979137@qq.com’,
  20.             ‘qq’=>979137,
  21.             ‘gold’=>1500,
  22.             ‘powerplay’=> array(‘2xp’=>12,’gem’=>12,’bingo’=>5,’keys’=>5,’chest’=>8),
  23.             ‘gems’=> array(‘red’=>13,’green’=>3,’blue’=>8,’yellow’=>17),
  24.             ‘ctime’=>1376523234,
  25.             ‘lastLogin’=>1377123144,
  26.             ‘level’=>19,
  27.             ‘exp’=>16758,
  28.         ),
  29.         10002 => array(
  30.             ‘uid’=>10002,
  31.             ‘vip’=>50,
  32.             ‘nickname’ => ‘elva’,
  33.             ’email’=>’elva@ezhi.net’,
  34.             ‘qq’=>NULL,
  35.             ‘gold’=>14320,
  36.             ‘powerplay’=> array(‘2xp’=>1,’gem’=>120,’bingo’=>51,’keys’=>5,’chest’=>8),
  37.             ‘gems’=> array(‘red’=>13,’green’=>3,’blue’=>8,’yellow’=>17),
  38.             ‘ctime’=>1376523234,
  39.             ‘lastLogin’=>1377123144,
  40.             ‘level’=>112,
  41.             ‘exp’=>167588,
  42.         ),
  43.         10003 => array(
  44.             ‘uid’ => 10003,
  45.             ‘vip’ => 5,
  46.             ‘nickname’ => ‘Lily’,
  47.             ’email’ => ‘Lily@ezhi.net’,
  48.             ‘qq’ => NULL,
  49.             ‘gold’ => 1541,
  50.             ‘powerplay’=> array(‘2xp’=>2,’gem’=>112,’bingo’=>4,’keys’=>7,’chest’=>8),
  51.             ‘gems’ => array(‘red’=>13,’green’=>3,’blue’=>9,’yellow’=>7),
  52.             ‘ctime’ => 1376523234,
  53.             ‘lastLogin’=> 1377123144,
  54.             ‘level’ => 10,
  55.             ‘exp’ => 1758,
  56.         ),
  57.     );
  58.     
  59.     $uidArr = array(10001,10002,10003);
  60.     if (in_array($uid, $uidArr, true)) {
  61.         $output = array(‘data’ => NULL, ‘info’=>’The user does not exist!’, ‘code’ => -402);
  62.         exit(json_encode($output));
  63.     }
    1.     //查询数据库
  64.     $userInfo = $mysql[$uid];
  65.     
  66.     //输出数据
  67.     $output = array(
  68.         ‘data’ => array(
  69.             ‘userInfo’ => $userInfo,
  70.             ‘isLogin’ => true,//是或不是第贰回登入
  71.             ‘unread’ => 4,//未读音讯数量
  72.             ‘untask’ => 3,//未成功职责
  73.         ), 
  74.         ‘info’ => ‘Here is the message which, commonly used in popup window’, //音信提醒,客商端常会用此看作给弹窗音讯。
  75.         ‘code’ => 200, //成功与失利的代码,日常都以正数只怕负数
  76.     );
  77.     exit(json_encode($output));
  78. } elseif ($a == ‘get_games_result’) {
  79.     //…
  80.     die(‘您正在调 get_games_result 接口!’);
  81. } elseif ($a == ‘upload_avatars’) {
  82.     //….
  83.     die(‘您正在调 upload_avatars 接口!’);
  84. }

6、做接口开垦,不提出接纳框架开发,原因富含起来有两点(其实我有一些冒风险的,自个儿也是
TPer 风华正茂枚,究竟这是TP的官网卡塔尔国:

三、实际项目中,大家在支付 API 应该小心的多少个事项(仅供参照他事他说加以考察卡塔尔:
1、单文件完毕多接口的款式有无尽种,比如:if..elseif.. 或 switch 或
动态方法 (约等于TP的这种访谈函数体的样式)
2、对于数据的出口最棒用json,json具备非常强大的跨平台性,商场上各大主流编制程序语言都帮忙json深入深入分析,json正在日渐代替xml,成为网络数据的通用格式
3、接口安全,应当要加进接口验证。举例,顾客端和服务端针对不相同接口统风度翩翩做好加密方法,服务端在对于每便接口需求都要扩充表明。以保证防止接口被恶心刷新或红客恶意调用,特别是巨型商业贸易利用。
4、对于线上的 API 必需保证具备接口平常且关闭全数的错误音信 =>
error_reporting(0),在输出JSON
时,无法有别的别的输出,不然,顾客端将解析数据失败,直接 Crash!
5、开采 API 和 WEB 有早晚的区分,借使是 WEB
的话,大概代码出错了,不会引致特别严重的荒诞,大概只是以致数据写入和查询退步,也许诱致WEB 的某部部分错位或乱码。但如假设 API,直接 Crash!
6、做接口开采,不提出采纳框架开垦,原因总结起来有两点(其实作者有一点点冒风险的,本身也是
TPer 生龙活虎枚,毕竟那是TP的官方网站卡塔尔:
  1卡塔 尔(阿拉伯语:قطر‎客商端平常对服务端的响应速度有超级高需求,由此,使用最原生态的 PHP
完结接口开荒,是最快速的,倘使用到了框架,还索要加载各样没有必要多余的公文,就好比夏季穿了件无序的衣衫。试想,你在玩手提式有线电话机的时候,使用一个施用随意贰个操作,等半天才有情状,你受的了吧?

1、PHP 能够支付客商端?

  那几个也许有人纠缠,接口功用与平稳,还得看编码的人,有的人想必写的还比不上框架跑的快,也可能有人以为用框架没什么难点,这里只是建议,关键看本人的实际上情状,同期提出代码上线前压测一下

2、有了参数,根据使用须要,达成数据管理,举例:职责进程更新、APP内购、黄金年代局游戏甘休数据交由等等

1、PHP 能够付出客户端?
答:不得以,因为PHP是脚本语言,是担任完毕 B/S架构 或 C/S架构的S部分,即:服务端的支出。(别去纠缠 GTK、WinBinder卡塔尔

做过 API 的人应该领会,其实开辟 API 比开荒 WEB
更简洁,但恐怕逻辑更复杂,因为 API
其实正是数额输出,不用展现页面,所以也就不设有 MVC(API 唯有 M 和 C卡塔 尔(英语:State of Qatar),

2、为何选择 PHP 作为支出服务端的首荐?
答:跨平台(能够运转在UNIX、LINUX、WINDOWS、Mac
OS下卡塔 尔(英语:State of Qatar)、低消耗(PHP消耗一定少的系统财富卡塔 尔(阿拉伯语:قطر‎、运营效能高(相对来讲卡塔尔、MySQL的完备搭档,自个儿是免费开源的,……

3、数据逻辑管理完事后,再次来到客户端所供给接收的相干数据,例如:职分状态、内购结果、游戏的使用者消息等等

复制代码
复制代码
点击测量检验(对于客商端来说,也是直接调用那样的地方卡塔尔:

答:跨平台(能够运作在UNIX、LINUX、WINDOWS、Mac
OS下卡塔 尔(阿拉伯语:قطر‎、低消耗(PHP消耗超少的系统能源卡塔 尔(英语:State of Qatar)、运营作用高、MySQL的一揽子搭档,本人是无偿开源的,……

 

2、对于数据的出口最棒用json,json具备异常强盛的跨平台性,商场上各大主流编制程序语言都支持json深入解析,json正在稳步替代xml,成为互连网数据的通用格式

  2卡塔尔国正是地点第4点提到的,框架对于WEB开采,是件比异常甜美的事,但对此 API
来说,你其实不敢想象它会给您出怎么样事端!最终你将痛心不堪~~因为不菲框架皆感觉WEB 诞生的(小编也很盼望有一天能来看特意为开辟 API 而生的框架或然扩张卡塔 尔(阿拉伯语:قطر‎

4、对于线上的 API 必需保险具备接口平常且关闭全部的错误消息 =>
error_reporting,在输出JSON
时,无法有任何别的输出,不然,顾客端将解析数据退步,直接 Crash!

  其实,ajax 也是调用 API 的黄金年代种体现格局,你以为吧? 呵呵~~