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获取当前日期所在星期(月份)的开始日期与结束日期(实现代码)
Jun 18 PHP
PHP关于IE下的iframe跨域导致session丢失问题解决方法
Oct 10 PHP
php多用户读写文件冲突的解决办法
Nov 06 PHP
php随机显示图片的简单示例
Feb 15 PHP
php中__destruct与register_shutdown_function执行的先后顺序问题
Oct 17 PHP
浅析PHP文件下载原理
Dec 25 PHP
Zend Framework连接Mysql数据库实例分析
Mar 19 PHP
php字符串操作针对负值的判断分析
Jul 28 PHP
yii2使用gridView实现下拉列表筛选数据
Apr 10 PHP
phpStudy配置多站点多域名方法及遇到的403错误解决方法
Oct 19 PHP
浅谈PHP中如何实现Hook机制
Nov 14 PHP
PHP8.0新功能之Match表达式的使用
Jul 19 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中判断变量为空的几种方法小结
2013/11/12 PHP
ThinkPHP实现动态包含文件的方法
2014/11/29 PHP
PHP PDOStatement::setAttribute讲解
2019/02/01 PHP
解决windows上php xdebug 无法调试的问题
2020/02/19 PHP
TP5框架页面跳转样式操作示例
2020/04/05 PHP
jQuery 锚点跳转滚动条平滑滚动一句话代码
2010/04/30 Javascript
JS实现两个大数(整数)相乘
2014/04/28 Javascript
nodejs教程之环境安装及运行
2014/11/21 NodeJs
javascript中Number对象的toString()方法分析
2014/12/20 Javascript
jQuery选择器源码解读(三):tokenize方法
2015/03/31 Javascript
解决angular的$http.post()提交数据时后台接收不到参数值问题的方法
2015/12/10 Javascript
深入浅析JavaScript中的作用域和上下文
2016/03/26 Javascript
Bootstrap实现水平排列的表单
2016/07/04 Javascript
require.js配合插件text.js实现最简单的单页应用程序
2016/07/12 Javascript
动态加载css方法实现和深入解析
2017/01/18 Javascript
vue2.0实现导航菜单切换效果
2017/05/08 Javascript
AngularJS实现自定义指令及指令配置项的方法
2017/11/20 Javascript
JavaScript面向对象的程序设计(犯迷糊的小羊)
2018/05/27 Javascript
微信小程序实现笑脸评分功能
2018/11/03 Javascript
使用Node.js写一个代码生成器的方法步骤
2019/05/10 Javascript
JS 封装父页面子页面交互接口的实例代码
2019/06/25 Javascript
jquery实现抽奖功能
2020/10/22 jQuery
详解Python中find()方法的使用
2015/05/18 Python
Python实现以时间换空间的缓存替换算法
2016/02/19 Python
pygame实现简易飞机大战
2018/09/11 Python
python实现彩色图转换成灰度图
2019/01/15 Python
详解python函数的闭包问题(内部函数与外部函数详述)
2019/05/17 Python
python3爬虫中引用Queue的实例讲解
2020/11/24 Python
惠普香港官方商店:HP香港
2019/04/30 全球购物
房地产营销策划方案
2014/02/08 职场文书
机关会计岗位职责
2014/04/08 职场文书
减负增效提质方案
2014/05/23 职场文书
一道JS算法面试题——冒泡、选择排序
2021/04/21 Javascript
使用redis生成唯一编号及原理示例详解
2021/09/15 Redis
台积电称即便经济低迷也没有降价的计划
2022/04/21 数码科技
css3手动实现pc端横向滚动
2022/06/21 HTML / CSS