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 相关文章推荐
一个ORACLE分页程序,挺实用的.
Oct 09 PHP
探讨:使用XMLSerialize 序列化与反序列化
Jun 08 PHP
php ios推送(代码)
Jul 01 PHP
PHP 获取远程文件大小的3种解决方法
Jul 11 PHP
yii框架通过控制台命令创建定时任务示例
Apr 30 PHP
php 使用redis锁限制并发访问类示例
Nov 02 PHP
php5.3后静态绑定用法详解
Nov 11 PHP
PHP实现留言板功能的详细代码
Mar 25 PHP
php 生成加密公钥加密私钥实例详解
Jun 16 PHP
PHP实现的折半查找算法示例
Dec 19 PHP
php nginx 实时输出的简单实现方法
Jan 21 PHP
php curl批处理实现可控并发异步操作示例
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
PHP在线生成二维码(google api)的实现代码详解
2013/06/04 PHP
基础的WordPress插件制作教程
2015/11/24 PHP
Zend Framework教程之Zend_Db_Table用法详解
2016/03/21 PHP
Yii框架实现的验证码、登录及退出功能示例
2017/05/20 PHP
JavaScript 三种不同位置代码的写法
2009/10/25 Javascript
基于jquery的网页SELECT下拉框美化代码
2010/10/28 Javascript
细说浏览器特性检测(2)-通用事件检测
2010/11/05 Javascript
JS上传图片前的限制包括(jpg jpg gif及大小高宽)等
2012/12/19 Javascript
js实现div闪烁原理及实现代码
2014/06/24 Javascript
浅谈Nodejs观察者模式
2015/10/13 NodeJs
解决js图片加载时出现404的问题
2020/11/30 Javascript
详解Webwork中Action 调用的方法
2016/02/02 Javascript
Javascript中的迭代、归并方法详解
2016/06/14 Javascript
js替换字符串中所有指定的字符(实现代码)
2016/08/17 Javascript
vue2笔记 — vue-router路由懒加载的实现
2017/03/03 Javascript
jQuery实现菜单栏导航效果
2017/08/15 jQuery
使用typescript开发angular模块并发布npm包
2018/04/19 Javascript
JavaScript中call和apply方法的区别实例分析
2018/08/03 Javascript
详解Webstorm 下的Angular2.0开发之路(图文)
2018/12/06 Javascript
vue element动态渲染、移除表单并添加验证的实现
2019/01/16 Javascript
Vue CLI 2.x搭建vue(目录最全分析)
2019/02/27 Javascript
vue学习笔记之Vue中css动画原理简单示例
2020/02/29 Javascript
[00:35]DOTA2上海特级锦标赛 MVP.Phx战队宣传片
2016/03/04 DOTA
[00:35]DOTA2上海特级锦标赛 VP战队宣传片
2016/03/04 DOTA
linux下安装easy_install的方法
2013/02/10 Python
python实现冒泡排序算法的两种方法
2018/03/10 Python
python简单的三元一次方程求解实例
2020/04/02 Python
CSS3中31种选择器使用方法教程
2013/12/05 HTML / CSS
html5 input元素新特性_动力节点Java学院整理
2017/07/06 HTML / CSS
德国童装购物网站:NICKI´S.com
2018/04/20 全球购物
Electric官网:美国高级眼镜和配件品牌
2020/06/04 全球购物
企业为何需要商业计划书
2013/12/26 职场文书
个人总结与自我评价
2014/09/18 职场文书
Python - 10行代码集2000张美女图
2021/05/23 Python
教你怎么用Python selenium操作浏览器对象的基础API
2021/06/23 Python
Java生成日期时间存入Mysql数据库的实现方法
2022/03/03 Java/Android