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 相关文章推荐
Access数据库导入Mysql的方法之一
Oct 09 PHP
一个简单的PHP&amp;MYSQL留言板源码
Jul 19 PHP
PHP sprintf()函数用例解析
May 18 PHP
php数组函数序列之in_array() 查找数组值是否存在
Oct 29 PHP
鸡肋的PHP单例模式应用详解
Jun 03 PHP
php实现将字符串按照指定距离进行分割的方法
Mar 14 PHP
PHP/HTML混写的四种方式总结
Feb 27 PHP
PHP-CGI远程代码执行漏洞分析与防范
May 07 PHP
Laravel 实现密码重置功能
Feb 23 PHP
PHP的图像处理实例小结【文字水印、图片水印、压缩图像等】
Dec 20 PHP
YII2框架中使用RBAC对模块,控制器,方法的权限控制及规则的使用示例
Mar 18 PHP
PHP实现文件上传与下载
Aug 28 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
福利彩票幸运号码自动生成器
2006/10/09 PHP
一个分页的论坛
2006/10/09 PHP
php MsSql server时遇到的中文编码问题
2009/06/11 PHP
php中批量修改文件后缀名的函数代码
2011/10/23 PHP
WordPress中邮件的一些修改和自定义技巧
2015/12/15 PHP
PHP实现链式操作的原理详解
2016/09/16 PHP
PHP判断函数是否被定义的方法
2019/06/21 PHP
javascript基于jQuery的表格悬停变色/恢复,表格点击变色/恢复,点击行选Checkbox
2008/08/05 Javascript
jquery动态加载图片数据练习代码
2011/08/04 Javascript
javascript获取作用在元素上面的样式属性代码
2012/09/20 Javascript
jquery实现鼠标滑过小图时显示大图的方法
2015/01/14 Javascript
JavaScript 里的类数组对象
2015/04/08 Javascript
jQuery的Scrollify插件实现滑动到页面下一节点
2015/07/05 Javascript
jQuery mobile 移动web(4)
2015/12/20 Javascript
Bootstrap基本插件学习笔记之Tooltip提示工具(18)
2016/12/08 Javascript
angular实现商品筛选功能
2017/02/01 Javascript
Kindeditor单独调用多图上传实例
2017/07/31 Javascript
angular1.x ui-route传参的三种写法小结
2018/08/31 Javascript
JS中数据结构之栈
2019/01/01 Javascript
微信小程序出现wx.getLocation再次授权问题的解决方法分析
2019/01/16 Javascript
如何通过setTimeout理解JS运行机制详解
2019/03/23 Javascript
微信小程序云开发之新手环境配置
2019/05/16 Javascript
antd配置config-overrides.js文件的操作
2020/10/31 Javascript
[00:44]2016完美“圣”典 风云人物:Mikasa宣传片
2016/12/07 DOTA
python完成FizzBuzzWhizz问题(拉勾网面试题)示例
2014/05/05 Python
Python程序设计入门(1)基本语法简介
2014/06/13 Python
python中matplotlib实现最小二乘法拟合的过程详解
2017/07/11 Python
python中删除某个元素的方法解析
2019/11/05 Python
用什么库写 Python 命令行程序(示例代码详解)
2020/02/20 Python
CSS3动画animation实现云彩向左滚动
2014/05/09 HTML / CSS
配置H5的滚动条样式的示例代码
2018/03/09 HTML / CSS
为什么在使用动态 SQL 语句时必须为低层数据库对象授予权限
2012/12/13 面试题
经济管理专业毕业生自荐信范文
2014/01/02 职场文书
工作说明书范文
2014/05/07 职场文书
企业文明单位申报材料
2014/05/16 职场文书
党校团干班培训心得体会
2016/01/06 职场文书