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类的使用 实例代码讲解
Dec 28 PHP
解决文件名解压后乱码的问题 将文件名进行转码的代码
Jan 10 PHP
php仿QQ验证码的实例分析
Jul 01 PHP
Yii框架调试心得--在页面输出执行sql语句
Dec 25 PHP
php+mysqli事务控制实现银行转账实例
Jan 29 PHP
PHP处理会话函数大总结
Aug 05 PHP
PHP验证终端类型是否为手机的简单实例
Feb 07 PHP
thinkphp5 加载静态资源路径与常量的方法
Dec 24 PHP
php实现网页上一页下一页翻页过程详解
Jun 28 PHP
PHP Swoole异步Redis客户端实现方法示例
Oct 24 PHP
goto语法在PHP中的使用教程
Sep 17 PHP
PHP的垃圾回收机制代码实例讲解
Feb 27 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
PHP5 面向对象(学习记录)
2009/12/02 PHP
使用GDB调试PHP代码,解决PHP代码死循环问题
2015/03/02 PHP
smarty模板引擎基础知识入门
2015/03/30 PHP
php array_key_exists() 与 isset() 的区别
2016/10/24 PHP
javascript 动态参数判空操作
2008/12/22 Javascript
jquery text,radio,checkbox,select操作实现代码
2009/07/09 Javascript
验证javascript中Object和Function的关系的三段简单代码
2010/06/27 Javascript
为什么要在引入的css或者js文件后面加参数的详细讲解
2013/05/03 Javascript
js判断选择的时间是否大于今天的代码
2013/08/20 Javascript
new Date()问题在ie8下面的处理方法
2014/07/31 Javascript
在JavaScript中call()与apply()区别
2016/01/22 Javascript
JavaScript的函数式编程基础指南
2016/03/19 Javascript
easyui validatebox验证
2016/04/29 Javascript
全面了解JavaScirpt 的垃圾(garbage collection)回收机制
2016/07/11 Javascript
AngularJS基础 ng-href 指令用法
2016/08/01 Javascript
JS实现图片延迟加载并淡入淡出效果的简单方法
2016/08/25 Javascript
Angular 2父子组件数据传递之@Input和@Output详解 (上)
2017/07/05 Javascript
JavaScript实现的原生态Tab标签页功能【兼容IE6】
2017/09/18 Javascript
基于vue实现网站前台的权限管理(前后端分离实践)
2018/01/13 Javascript
electron实现静默打印的示例代码
2019/08/12 Javascript
layui table 列宽百分比显示的实现方法
2019/09/28 Javascript
详解vite2.0配置学习(typescript版本)
2021/02/25 Javascript
Python字符串替换实例分析
2015/05/11 Python
通过mod_python配置运行在Apache上的Django框架
2015/07/22 Python
python实现发送和获取手机短信验证码
2016/01/15 Python
python中将正则过滤的内容输出写入到文件中的实例
2018/10/21 Python
python+opencv实现霍夫变换检测直线
2020/10/23 Python
10招!看骨灰级Pythoner玩转Python的方法
2019/04/15 Python
opencv之为图像添加边界的方法示例
2019/12/26 Python
优秀求职信范文分享
2014/01/26 职场文书
《棉鞋里的阳光》教学反思
2014/04/24 职场文书
2014年监理个人工作总结
2014/12/11 职场文书
2015年七七事变78周年纪念活动方案
2015/05/06 职场文书
2015年体检中心工作总结
2015/05/27 职场文书
CSS3 实现的图片悬停的切换按钮
2021/04/13 HTML / CSS
Python中常见的反爬机制及其破解方法总结
2021/06/10 Python