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调用mysql存储过程
Feb 14 PHP
php读取30天之内的根据算法排序的代码
Apr 06 PHP
说明的比较细的php 正则学习实例
Jul 30 PHP
解析如何通过PHP函数获取当前运行的环境 来进行判断执行逻辑(小技巧)
Jun 25 PHP
jQuery中的RadioButton,input,CheckBox取值赋值实现代码
Feb 18 PHP
微信公众平台消息接口校验与消息接口响应实例
Dec 23 PHP
php银联网页支付实现方法
Mar 04 PHP
PHP判断是否连接上网络的方法
Jul 01 PHP
CodeIgniter生成静态页的方法
May 17 PHP
TP5(thinkPHP框架)实现后台清除缓存功能示例
May 29 PHP
php屏蔽错误及提示的方法
May 10 PHP
深入理解PHP+Mysql分布式事务与解决方案
Dec 03 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
memcache命令启动参数中文解释
2014/01/13 PHP
PHP中empty,isset,is_null用法和区别
2017/02/19 PHP
tp5.1 框架数据库-数据集操作实例分析
2020/05/26 PHP
php中yii框架实例用法
2020/12/22 PHP
javascript 函数调用规则
2009/08/26 Javascript
避免回车键导致的页面无意义刷新的解决方法
2011/04/12 Javascript
JQuery 常用方法和事件详细介绍
2013/04/18 Javascript
jQuery+Ajax+PHP+Mysql实现分页显示数据实例讲解
2015/09/27 Javascript
小心!AngularJS结合RequireJS做文件合并压缩的那些坑
2016/01/09 Javascript
微信jssdk用法汇总
2016/07/16 Javascript
AngularJS 霸道的过滤器小结
2017/04/26 Javascript
jQuery实现html双向绑定功能示例
2017/10/09 jQuery
Vue中mintui的field实现blur和focus事件的方法
2018/08/25 Javascript
js对象数组和对象的使用实例详解
2019/08/27 Javascript
浅析vue-cli3配置webpack-bundle-analyzer插件【推荐】
2019/10/23 Javascript
Javascript实现鼠标点击冒泡特效
2019/12/24 Javascript
[04:31]2016国际邀请赛中国区预选赛妖精采访
2016/06/27 DOTA
[01:31:02]TNC vs VG 2019国际邀请赛淘汰赛 胜者组赛BO3 第一场
2019/08/22 DOTA
[01:05:29]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Aster BO3 第二场 1月24日
2021/03/11 DOTA
Python类属性与实例属性用法分析
2015/05/09 Python
python fabric实现远程部署
2017/01/05 Python
pandas groupby 分组取每组的前几行记录方法
2018/04/20 Python
基于python3 OpenCV3实现静态图片人脸识别
2018/05/25 Python
TensorFlow基于MNIST数据集实现车牌识别(初步演示版)
2019/08/05 Python
Pytorch evaluation每次运行结果不同的解决
2020/01/02 Python
Python3.x+pyqtgraph实现数据可视化教程
2020/03/14 Python
Petmate品牌官方网站:宠物用品
2018/11/25 全球购物
Derek Rose官网:英国高档睡衣、家居服和内衣品牌
2020/01/18 全球购物
厨房领班竞聘演讲稿
2014/04/23 职场文书
出国留学计划书
2014/04/27 职场文书
儿园租房协议书范本
2014/12/02 职场文书
工程部岗位职责范本
2015/04/11 职场文书
故意杀人案辩护词
2015/05/21 职场文书
APP界面设计技巧和注意事项
2022/04/29 杂记
java实现面板之间切换功能
2022/06/10 Java/Android
MySQL存储过程及语法详解
2022/08/05 MySQL