利用PHP如何写APP接口详解


Posted in PHP onAugust 23, 2016

搭建PHP环境

由于本人使用的电脑是Mac,因此推荐大家使用MAMP PRO这款软件,不过是收费版,相信不想花钱的大家会有办法搞定的!

MAMP PRO这款软件是集成环境软件,已经有apache、mysql、php了,具备运行解析PHP的环境了!

如果不想使用集成环境,可以自己搭建。Mac自带了apache和PHP环境的,只需要稍加配置一下就可以使用了,然后再安装一下mysql就可以了!

大家可以看一下简单版本配置:Mac配置PHP环境 这篇文章。

启动服务器

这里是以MAMP PRO软件为例,如何启动服务器。如下图,我们假设服务地址为 www.api.com ,然后将项目目录与这个服务地址关联起来,看图中右下角圈圈部分:

利用PHP如何写APP接口详解

环境启动后,就可以在浏览器中直接输入 www.api.com 运行起来了!

开始GET接口

我们的空项目在首次运行后,会自动生成 index.php 这个文件,我们删除里面的内容,然后修改如下:

<?php
 
$data = array(
 'tid' => 100, 
 'name' => '标哥的技术博客',
 'site' => 'www.huangyibiao.com');
 
$response = array(
 'code' => 200, 
 'message' => 'success for request',
 'data' => $data,
 );
 
echojson_encode($response);

我们这里的结构是日常App开发中最常见的返回数据结构了吧?通常都是状态码、状态信息和客户端业务数据。

PHP其实也好给力,声明数组后,通过 json_encode 函数就可以输出json格式数据了!

iOS调GET接口

我们有了服务器,也写了接口了,那么客户端如何请求又如何获取数据呢?我们先来看一下最简单的GET请求例子,其中使用了HYBNetworking笔者的这个开源库:

NSString *url = @"http://www.api.com/index.php";
[HYBNetworkinggetWithUrl:urlrefreshCache:YESsuccess:^(id response) {
 
}fail:^(NSError *error) {
 
}];

我们看一下iOS客户端的响应结果:

利用PHP如何写APP接口详解

从响应结果可以看到,与我们服务器接口所返回的是一致的,看下图在浏览器中访问的效果:

利用PHP如何写APP接口详解

PHP POST接口

假设我们要求传参数type过来,而且要求是数值型,用于返回不同的数据,当我们做接口测试时,就可以通过这么来干,就不需要等后台给接口了!

<?php
 
$type = $_POST['type'];
$data = '';
 
if (isset($type) && is_numeric($type) && $type >= 0) {
 if ($type == 1) {
 $data = array(
  'type' => $type, 
  'name' => '标哥的技术博客',
  'site' => 'www.huangyibiao.com');
 } else if ($type == 2) {
 $data = array(
  'type' => $type, 
  'name' => '公众号:标哥的技术博客',
  'site' => 'weixin search: biaogedejishuboke');
 } 
 
 $response = array(
 'code' => 200, 
 'message' => 'success for request',
 'data' => $data,
 );
 
 echojson_encode($response);
 return;
} 
 
$response = array(
 'code' => 999, 
 'message' => 'argument error for request',
 'data' => $data,
 );
 
echojson_encode($response);

iOS调POST接口

下面是iOS客户端如何调用刚才所写的PHP POST接口,其中使用了HYBNetworking笔者的这个开源库:

NSString *url = @"http://www.api.com/index.php";
NSDictionary *params = @{@"type" : @(1)};
[HYBNetworkingpostWithUrl:urlrefreshCache:YESparams:paramssuccess:^(id response) {
 
}fail:^(NSError *error) {
 
}];

我们看看效果如下,可看到如愿地接收到了服务器返回的接口数据并解析出来了:

利用PHP如何写APP接口详解

总结

本篇文章的内容到这就基本结束了,相信大家若想学习它,一定会认真去操作一遍的!今后会慢慢接触它,慢慢掌握它,一定会让你在工作上更加顺利的!希望本文对大家能有所帮助。

PHP 相关文章推荐
php 之 没有mysql支持时的替代方案
Oct 09 PHP
深入PHP FTP类的详解
Jun 13 PHP
thinkphp数据查询和遍历数组实例
Nov 28 PHP
php发送邮件的问题详解
Jun 22 PHP
php使用pdo连接sqlite3的配置示例
May 27 PHP
Thinkphp和Bootstrap结合打造个性的分页样式(推荐)
Aug 01 PHP
PHP数组编码gbk与utf8互相转换的两种方法
Sep 01 PHP
Laravel接收前端ajax传来的数据的实例代码
Jul 20 PHP
php基于自定义函数记录log日志方法
Jul 21 PHP
phpfpm的作用和用法
Oct 10 PHP
PHP实现一个按钮点击上传多个图片操作示例
Jan 23 PHP
PHP设计模式入门之迭代器模式原理与实现方法分析
Apr 26 PHP
PHP微信API接口类
Aug 22 #PHP
简单PHP会话(session)说明介绍
Aug 21 #PHP
PHP中ID设置自增后不连续的原因分析及解决办法
Aug 21 #PHP
PHP控制前台弹出对话框的实现方法
Aug 21 #PHP
php代码检查代理ip的有效性
Aug 19 #PHP
PHP中new static()与new self()的比较
Aug 19 #PHP
ThinkPHP3.2.1图片验证码实现方法
Aug 19 #PHP
You might like
PHP获取当前相对于域名目录的方法
2015/06/26 PHP
46 个非常有用的 PHP 代码片段
2016/02/16 PHP
thinkPHP+PHPExcel实现读取文件日期的方法(含时分秒)
2016/07/07 PHP
实例讲解PHP表单处理
2019/02/15 PHP
让JavaScript拥有类似Lambda表达式编程能力的方法
2010/09/12 Javascript
lyhucSelect基于Jquery的Select数据联动插件
2011/03/29 Javascript
js动画效果制件让图片组成动画代码分享
2014/01/14 Javascript
javascript教程:关于if简写语句优化的方法
2014/05/17 Javascript
jquery使整个div区域可以点击的方法
2015/06/24 Javascript
JavaScript资源预加载组件和滑屏组件的使用推荐
2016/03/10 Javascript
JavaScript探测CSS动画是否已经完成的方法
2016/08/30 Javascript
JavaScript制作简单分页插件
2016/09/11 Javascript
js实现表单提交后不重新刷新当前页面
2016/11/30 Javascript
jQuery常见面试题之DOM操作详析
2017/07/05 jQuery
对于Javascript 执行上下文的全面了解
2017/09/05 Javascript
vue表单自定义校验规则介绍
2018/08/28 Javascript
手把手教你如何使用nodejs编写cli命令行
2018/11/05 NodeJs
VUE兄弟组件传值操作实例分析
2019/10/26 Javascript
微信小程序如何实现精确的日期时间选择器
2020/01/21 Javascript
element-ui 实现响应式导航栏的示例代码
2020/05/08 Javascript
教你用Type Hint提高Python程序开发效率
2016/08/08 Python
Python读取properties配置文件操作示例
2018/03/29 Python
Python实现一个服务器监听多个客户端请求
2018/04/12 Python
python 二维数组90度旋转的方法
2019/01/28 Python
python读取并定位excel数据坐标系详解
2019/06/26 Python
Python数据库小程序源代码
2019/09/15 Python
python的等深分箱实例
2019/11/22 Python
python 爬虫网页登陆的简单实现
2020/11/30 Python
AmazeUI 图标的示例代码
2020/08/13 HTML / CSS
在校生钳工实习自我鉴定
2013/09/19 职场文书
大学专科生推荐信范文
2013/11/23 职场文书
医校毕业生自我鉴定
2014/01/25 职场文书
2014年大学生社会实践自我鉴定
2014/09/26 职场文书
先进班集体事迹材料
2014/12/25 职场文书
护士节慰问信
2015/02/15 职场文书
紧急迫降观后感
2015/06/15 职场文书