asp和php的建站区别,上海企业网站建设报,厦门网站建设网站改版,wordpress 探针本文内容转载自:http://www.thinkphp.cn/topic/5023.html 这个帖子写给不太了解PHP与API开发的人一、先简单回答两个问题#xff1a;1、PHP 可以开发客户端#xff1f;答#xff1a;不可以#xff0c;因为PHP是脚本语言#xff0c;是负责完成 B/S架构 或 C/S架构 的S部分1、PHP 可以开发客户端答不可以因为PHP是脚本语言是负责完成 B/S架构 或 C/S架构 的S部分即服务端的开发。别去纠结 GTK、WinBinder2、为什么选择 PHP 作为开发服务端的首选答跨平台可以运行在UNIX、LINUX、WINDOWS、Mac OS下、低消耗PHP消耗相当少的系统资源、运行效率高相对而言、MySQL的完美搭档本身是免费开源的......二、如何使用 PHP 开发 APIApplication Programming Interface应用程序编程接口 呢做过 API 的人应该了解其实开发 API 比开发 WEB 更简洁但可能逻辑更复杂因为 API 其实就是数据输出不用呈现页面所以也就不存在 MVCAPI 只有 M 和 C1、和 WEB 开发一样首先需要一些相关的参数这些参数都会由客户端传过来也许是 GET 也许是 POST这个需要开发团队相互之间约定好或者制定统一规范。2、有了参数根据应用需求完成数据处理例如任务进度更新、APP内购、一局游戏结束数据提交等等3、数据逻辑处理完之后返回客户端所需要用到的相关数据例如任务状态、内购结果、玩家信息等等数据怎么返给客户端直接输出的形式如JSON、xml、TEXT 等等。4、客户端获取到你返回的数据后在客户端本地和用户进行交互临时写的一个简单 API 例子 ?php$output array();$a $_GET[a] ? $_GET[a] : ;$uid $_GET[uid] ? $_GET[uid] : 0; if (empty($a)) { $output array(dataNULL, info坑爹啊!, code-201); exit(json_encode($output));} //走接口if ($a get_users) { //检查用户 if ($uid 0) { $output array(dataNULL, infoThe uid is null!, code-401); exit(json_encode($output)); } //假设 $mysql 是数据库 $mysql array( 10001 array( uid10001, vip5, nickname Shine X, email979137qq.com, qq979137, gold1500, powerplay array(2xp12,gem12,bingo5,keys5,chest8), gems array(red13,green3,blue8,yellow17), ctime1376523234, lastLogin1377123144, level19, exp16758, ), 10002 array( uid10002, vip50, nickname elva, emailelvaezhi.net, qqNULL, gold14320, powerplay array(2xp1,gem120,bingo51,keys5,chest8), gems array(red13,green3,blue8,yellow17), ctime1376523234, lastLogin1377123144, level112, exp167588, ), 10003 array( uid 10003, vip 5, nickname Lily, email Lilyezhi.net, qq NULL, gold 1541, powerplay array(2xp2,gem112,bingo4,keys7,chest8), gems array(red13,green3,blue9,yellow7), ctime 1376523234, lastLogin 1377123144, level 10, exp 1758, ), ); $uidArr array(10001,10002,10003); if (in_array($uid, $uidArr, true)) { $output array(data NULL, infoThe user does not exist!, code -402); exit(json_encode($output)); } //查询数据库 $userInfo $mysql[$uid]; //输出数据 $output array( data array( userInfo $userInfo, isLogin true,//是否首次登陆 unread 4,//未读消息数量 untask 3,//未完成任务 ), info Here is the message which, commonly used in popup window, //消息提示客户端常会用此作为给弹窗信息。 code 200, //成功与失败的代码一般都是正数或者负数 ); exit(json_encode($output));} elseif ($a get_games_result) { //... die(您正在调 get_games_result 接口!);} elseif ($a upload_avatars) { //.... die(您正在调 upload_avatars 接口!);}复制代码 复制代码 点击测试对于客户端而言也是直接调用这样的地址http://www.ezhi.net/api/test/index.phphttp://www.ezhi.net/api/test/index.php?aget_usershttp://www.ezhi.net/api/test/index.php?aget_usersuid10001http://www.ezhi.net/api/test/index.php?aget_usersuid10002http://www.ezhi.net/api/test/index.php?aget_usersuid10003三、实际项目中我们在开发 API 应该注意的几个事项仅供参考1、单文件实现多接口的形式有很多种例如if..elseif.. 或 switch 或 动态方法 (也就是TP的这种访问函数体的形式)2、对于数据的输出最好用jsonjson具有相当强大的跨平台性市场上各大主流编程语言都支持json解析json正在逐步取代xml成为网络数据的通用格式3、接口安全一定要增加接口验证。例如客户端和服务端针对不同接口统一做好加密方式服务端在对于每次接口需要都要进行验证。以保证防止接口被恶意刷新或黑客恶意调用尤其是大型商业应用。4、对于线上的 API 必须保证所有接口正常且关闭所有的错误信息 error_reporting(0)在输出JSON 时不能有任何其它输出否则客户端将解析数据失败直接 Crash5、开发 API 和 WEB 有一定的区别如果是 WEB 的话可能代码出错了不会导致特别严重的错误也许只是导致数据写入和查询失败也许导致 WEB 的某个部分错位或乱码。但如果是 API直接 Crash6、做接口开发不建议使用框架开发原因概括起来有两点其实我有点冒风险的本人也是 TPer 一枚毕竟这是TP的官网 1客户端一般对服务端的响应速度有极高要求因此使用最原生态的 PHP 完成接口开发是最高效的假如用到了框架还需要加载各种不需要多余的文件就好比夏天穿了件冬天的衣服。试想你在玩手机的时候使用一个应用随便一个操作等半天才有动静你受的了吗 2就是上面第4点提到的框架对于WEB开发是件很幸福的事但对于 API 而言你实在不敢想象它会给你出什么岔子最后你将痛苦不堪~~因为很多框架都是为 WEB 诞生的我也很期待有一天能看到专门为开发 API 而生的框架或者扩展 这个也有人纠结接口效率与稳定性还得看编码的人有的人可能写的还不如框架跑的快也有人觉得用框架没什么问题这里只是建议关键看自己的实际情况同时建议代码上线前压测一下 说到这不得不说扯一下腾讯微博淘宝等开放平台。其实那些开放平台所谓的开放就是给你提供一个这样的接口你根据他们提供的技术文档按他们制定的格式和要求调它们提供的接口文件一般都是返回JSON或者xml你就可以获取到他们的相关信息例如QQ用户基本信息、淘宝店铺、商品消息等等。然后在根据这些消息在你的应用里完成交互。 其实ajax 也是调用 API 的一种体现形式你觉得呢 呵呵~~转载于:https://www.cnblogs.com/gavinyyb/p/6181744.html