PHP编写简单的App接口


Posted in PHP onAugust 28, 2016

本篇是笔记尝试写的第一个PHP接口,并在iOS开发中尝试应用测试。今天给大家分享如何自己写接口来测试!

相信很多朋友在开发时遇到过这样的问题:后台什么时候提供接口?怎么才提供一个接口,其他接口什么时候给出来?没有接口我们前端怎么能做得了?

哈哈!大学学完本篇就可以自己搞个接口来返回固定的死数据来测试了!

搭建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数组
Oct 09 PHP
提升PHP执行速度全攻略(上)
Oct 09 PHP
发款php蜘蛛统计插件只要有mysql就可用
Oct 12 PHP
php中截取中文字符串的代码小结
Jul 17 PHP
php如何解决无法上传大于8M的文件问题
Mar 10 PHP
浅谈php和.net的区别
Sep 28 PHP
php下foreach提示Warning:Invalid argument supplied for foreach()的解决方法
Nov 11 PHP
php实现根据IP地址获取其所在省市的方法
Apr 30 PHP
PHP框架Laravel学习心得体会
Oct 28 PHP
Yii实现显示静态页的方法
Apr 25 PHP
PHP使用GD库输出汉字的方法【测试可用】
Nov 10 PHP
浅谈如何提高PHP代码质量之端到端集成测试
May 28 PHP
PHP导出带样式的Excel示例代码
Aug 28 #PHP
总结对比php中的多种序列化
Aug 28 #PHP
PHP打印输出函数汇总
Aug 28 #PHP
PHP中include/require/include_once/require_once使用心得
Aug 28 #PHP
PHP常用的三种设计模式汇总
Aug 28 #PHP
Apache PHP MySql安装配置图文教程
Aug 27 #PHP
php微信开发接入
Aug 27 #PHP
You might like
浅谈discuz密码加密的方式
2014/05/22 PHP
PHP中魔术变量__METHOD__与__FUNCTION__的区别
2014/09/29 PHP
php面向对象中static静态属性与方法的内存位置分析
2015/02/08 PHP
php求一个网段开始与结束IP地址的方法
2015/07/09 PHP
php防止表单重复提交实例讲解
2019/02/11 PHP
PHP htmlspecialchars_decode()函数用法讲解
2019/03/01 PHP
Avengerls vs KG BO3 第二场2.18
2021/03/10 DOTA
图片之间的切换
2006/06/26 Javascript
javascript实现的动态文字变换
2007/07/28 Javascript
只需一行代码,轻松实现一个在线编辑器
2013/11/12 Javascript
JS实现选择TextArea内文本的方法
2015/08/03 Javascript
js中substr,substring,indexOf,lastIndexOf,split,replace的用法详解
2015/11/09 Javascript
你所未知的3种Node.js代码优化方式
2016/02/25 Javascript
JavaScript的React框架中的JSX语法学习入门教程
2016/03/05 Javascript
Jquery Easyui表单组件Form使用详解(30)
2016/12/19 Javascript
微信小程序 标签传入数据
2017/05/08 Javascript
解决AjaxFileupload 上传时会出现连接重置的问题
2017/07/07 Javascript
js判断数组是否包含某个字符串变量的实例
2017/11/24 Javascript
详解package.json版本号规则
2019/08/01 Javascript
JS函数本身的作用域实例分析
2020/03/16 Javascript
swiper4实现移动端导航栏tab滑动切换
2020/10/16 Javascript
JS实现简易日历效果
2021/01/25 Javascript
Python搭建HTTP服务器和FTP服务器
2017/03/09 Python
python如何通过twisted实现数据库异步插入
2018/03/20 Python
解决Mac安装scrapy失败的问题
2018/06/13 Python
浅谈keras 的抽象后端(from keras import backend as K)
2020/06/16 Python
浅谈如何使用python抓取网页中的动态数据实现
2020/08/17 Python
通过css3的filter滤镜改变png图片的颜色的示例代码
2020/05/06 HTML / CSS
canvas绘制视频封面的方法
2018/02/05 HTML / CSS
猫途鹰英国网站:TripAdvisor英国(旅游社区和旅游评论)
2016/08/30 全球购物
北承题目(C++)
2012/05/16 面试题
上海中网科技笔试题
2012/02/19 面试题
工程概预算专业毕业生求职信
2013/10/04 职场文书
八荣八耻的活动方案
2014/08/16 职场文书
就业推荐表导师评语
2014/12/31 职场文书
mysql中varchar类型的日期进行比较、排序等操作的实现
2021/11/17 MySQL