在php中调用接口以及编写接口转载
原创如:
http://localhost/openUser.php?act=get_user_list&type=json
在这里openUser.php等同于一个接口,其中的接口等同于一个接口,其中get_user_list 是一个API(要获取用户列表),要返回的数据类型为JSON格式。
您所需要做的就是将您需要做的全部添加到PHP代码执行此链接,然后他返回。
GET直接使用方式直接使用方式直接使用方法
$file_contents = file_get_content( http://localhost/openUser.php?act=get_user_list&type=json )
POST要做到这一点,可以使用以下方法(需要开启PHP curl支持)。
$url = http://localhost/openUser.php?act=get_user_list&type=json ;
$ch = curl_init ();
curl_setopt ( $ch, CURLOPT_URL, $url );
curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, 1 );
curl_setopt ( $ch, CURLOPT_CONNECTTIMEOUT, 10 );
curl_setopt ( $ch, CURLOPT_POST, 1 ); //启用POST提交
$file_contents = curl_exec ( $ch );
curl_close ( $ch );
在php 在写入接口的写入接口中写入接口
首先,简短地回答两个问题。一、首先,简要回答两个问题。一、首先,简要回答两个问题。一、首先,两个简短的问题。
1、PHP 你能开发一个客户吗?你能发展客户吗?我能开发一个客户吗?你能开发这个客户吗?
A:不,因为A:不,这不可能,因为PHP是负责完成 B/S架构 或 C/S架构 的S部分,即:服务器端的开发。)别挂断电话了 GTK、WinBinder)
2为什么要选择 PHP 作为开发服务器端的首选?作为开发服务器端的首选?
A:跨平台(可以运行在A:跨平台)(可以运行在A:跨平台(可以运行在UNIX、LINUX、WINDOWS、Mac OS下)、低消耗(下)、低消耗((下)、低消耗((下))PHP消耗相当少的系统资源)、高运行效率(相对而言),以及MySQL完美的合作伙伴,本身就是免费和开源的......
第二,如何使用两个,如何使用第二。如何使用如何使用 PHP 开发 API(Application Programming Interface(应用编程接口)(应用编程接口,API) 呢?
做过 API 的人应该明白,实际上发展起来的 API 比开发 WEB 更简洁,但在逻辑上可能更复杂,因为 API 它实际上是不需要呈现页面的数据输出,所以没有 MVC(API 只有 M 和 C),
1、和 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 ( data => NULL , info => 坑爹啊! , 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 ));
-
}
-
//假设 $mysql 是数据库
-
$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 ,
-
),
-
10003 => array (
-
uid => 10003 ,
-
vip => 5 ,
-
nickname => Lily ,
-
email => Lily@ezhi.net ,
-
qq => NULL ,
-
gold => 1541 ,
-
powerplay => array ( 2xp => 2 , gem => 112 , bingo => 4 , keys => 7 , chest => 8 ),
-
gems => array ( red => 13 , green => 3 , blue => 9 , yellow => 7 ),
-
ctime => 1376523234 ,
-
lastLogin => 1377123144 ,
-
level => 10 ,
-
exp => 1758 ,
-
),
-
);
-
$uidArr = array ( 10001 , 10002 , 10003 );
-
if ( in_array ( $uid , $uidArr , true )) {
-
$output = array ( data => NULL , info => The 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.php
http://www.ezhi.net/api/test/index.php?a=get_users
http://www.ezhi.net/api/test/index.php?a=get_users&uid=10001
http://www.ezhi.net/api/test/index.php?a=get_users&uid=10002
http://www.ezhi.net/api/test/index.php?a=get_users&uid=10003
第三,实际项目,我们正在开发第三,我们正在开发的实际项目 API 需要注意的几件事(仅供参考)。
1例如,在单个文件中实现多个接口有许多不同的形式。if..elseif.. 或 switch 或 动态方法 (也就是TP这种形式的访问函数体这种形式访问的函数体)
2对于数据输出,最好使用数据输出。对于数据输出,最好使用json,json具有相当强大的跨平台能力,支持市场上所有主要的编程语言json解析,json正在逐步取代正在逐步取代正在逐渐取代xmlWeb数据的通用格式Web数据的通用格式网络数据的通用格式
3接口安全,接口安全,必须增加接口验证。例如,客户端和服务器端对于不同的接口统一好的加密方法,服务器端在对于每个接口都需要进行验证。确保界面不被恶意刷新或黑客恶意调用,特别是大型商业应用。
4,用于在线,用于在线,用于在线 API 必须确保所有接口都工作正常,并且所有错误消息都已关闭 => error_reporting(0),在输出JSON 当没有其他输出时,客户端将无法直接解析数据 Crash!
5、开发 API 和 WEB 有一定的差异,如果是的话,如果是有一定的差异 WEB 如果代码错误,可能不会导致特别严重的错误,可能只会导致数据写入和查询失败,可能会导致 WEB 某些部分被放错了位置或被弄乱了。但如果是这样的话 API,直接 Crash!
6我不推荐使用框架开发、接口开发,总结起来有两个原因(事实上,我有一点风险,我也是) TPer 一件,毕竟这是一件,毕竟这是一件,毕竟是一件TP的官方网站)。的官网)。(的官网)。(官网)。
1)客户端通常对服务器端响应速度有极高的要求,因此使用最本机的 PHP 完成界面的开发,是最有效率的,如果使用框架,还需要加载各种冗余的文件,不需要,就像夏天穿着冬衣一样。想象一下,你在玩手机,用了一个应用程序的随机操作,等了半天才有动静,你受了吗?
2)是上面的一段4在这一点上提到的,框架WEB发展,是一件幸福的事情,但对于发展来说,是一件幸福的事情,但对于发展,这是一件幸福的事情,但对于发展,却是一件幸福的事情 API 你真的无法想象它会对你造成什么影响!到头来你会吃苦头的!~~因为许多框架都是为之设计的,因为许多框架都是为 WEB 我出生了(我期待着有一天我能看到一个专注的发展 API (以及创建的框架或扩展)(以及生成的框架或扩展)
这也是有人纠结的,界面的效率和稳定性,还要看编码的人,可能有人写的没有框架运行的快,有人认为框架没有问题,这里只是一个建议,关键是看一下自己的实际情况,同时建议代码上线前进行压力测试
说到这里,我们不得不谈一谈腾讯微博淘宝等开放平台。其实,那些开放的平台,所谓的开放,就是为你提供这样一个接口,你根据他们提供的技术文件,按照他们设定的格式和要求,调用他们提供的接口文件(一般都是返回的)JSON或者XML),你将能够获得关于他们的信息,例如),你可以获得关于他们的信息,例如QQ基本用户信息、淘宝店、产品消息等。然后根据这些消息,在您的应用程序中进行交互。
其实,ajax 也是调用 API 的接口
版权声明
所有资源都来源于爬虫采集,如有侵权请联系我们,我们将立即删除