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 相关文章推荐
使用sockets:从新闻组中获取文章(三)
Oct 09 PHP
php 遍历数据表数据并列表横向排列的代码
Sep 05 PHP
PHP 巧用数组降低程序的时间复杂度
Jan 01 PHP
ThinkPHP模板判断输出Present标签用法详解
Jun 30 PHP
Thinkphp中import的几个用法详细介绍
Jul 02 PHP
php中strtotime函数用法详解
Nov 15 PHP
浅谈使用PHP开发微信支付的流程
Oct 04 PHP
php采用session实现防止页面重复刷新
Dec 24 PHP
PHP生成可点击刷新的验证码简单示例
May 13 PHP
php获得刚插入数据的id 的几种方法总结
May 31 PHP
PHP实现打包zip并下载功能
Jun 12 PHP
Laravel配置全局公共函数的方法步骤
May 09 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
跟我学Laravel之请求(Request)的生命周期
2014/10/15 PHP
php将html转成wml的WAP标记语言实例
2015/07/08 PHP
浅谈PHP中output_buffering
2015/07/13 PHP
PHP代码覆盖率统计详解
2020/07/22 PHP
解决使用attachEvent函数时,this指向被绑定的元素的问题的方法
2007/08/13 Javascript
jQuery 相关控件的事件操作分解
2009/08/03 Javascript
js取得url地址参数实例
2013/02/22 Javascript
jquery validation验证身份证号,护照,电话号码,email(实例代码)
2013/11/06 Javascript
easyui datagrid 大数据加载效率慢,优化解决方法(推荐)
2016/11/09 Javascript
详解jquery validate实现表单验证 (正则表达式)
2017/01/18 Javascript
bootstrap3使用bootstrap datetimepicker日期插件
2017/05/24 Javascript
详解JS中的柯里化(currying)
2017/08/17 Javascript
Node.js利用console输出日志文件的方法示例
2018/04/27 Javascript
详解微信小程序-canvas绘制文字实现自动换行
2019/04/26 Javascript
js中值引用和地址引用实例分析
2019/06/21 Javascript
微信小程序实现原生步骤条
2019/07/25 Javascript
vue的keep-alive用法技巧
2019/08/15 Javascript
如何使用Jquery动态生成二级选项列表
2020/02/06 jQuery
JavaScript碰撞检测原理及其实现代码
2020/03/12 Javascript
单线程JavaScript实现异步过程详解
2020/05/19 Javascript
toString.call()通用的判断数据类型方法示例
2020/08/28 Javascript
[01:03:47]VP vs NewBee Supermajor 胜者组 BO3 第一场 6.5
2018/06/06 DOTA
Python实现将Excel转换为json的方法示例
2017/08/05 Python
PyTorch线性回归和逻辑回归实战示例
2018/05/22 Python
Selenium定时刷新网页的实现代码
2018/10/31 Python
对Python函数设计规范详解
2019/07/19 Python
用python wxpy管理微信公众号并利用微信获取自己的开源数据
2019/07/30 Python
python GUI库图形界面开发之PyQt5日期时间控件QDateTimeEdit详细使用方法与实例
2020/02/27 Python
python实现二分类和多分类的ROC曲线教程
2020/06/15 Python
python把一个字符串切开的实例方法
2020/09/27 Python
一款CSS3实现多功能下拉菜单(带分享按)的教程
2014/11/05 HTML / CSS
Linux中如何用命令创建目录
2016/12/02 面试题
求职简历自我评价2015
2015/03/10 职场文书
2019优秀干部竞聘演讲稿范文!
2019/07/02 职场文书
2019年圣诞节祝福语集锦
2019/12/25 职场文书
SpringBoot连接MySQL获取数据写后端接口的操作方法
2021/11/02 MySQL