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 相关文章推荐
smarty 原来也不过如此~~呵呵
Nov 25 PHP
mysql+php分页类(已测)
Mar 31 PHP
怎样去阅读一份php源代码
Aug 21 PHP
php文章内容分页并生成相应的htm静态页面代码
Jun 07 PHP
php array_push()数组函数:将一个或多个单元压入数组的末尾(入栈)
Jul 12 PHP
php中url传递中文字符,特殊危险字符的解决方法
Aug 17 PHP
PHP根据传入参数合并多个JS和CSS文件的简单实现
Jun 13 PHP
PHP+Memcache实现wordpress访问总数统计(非插件)
Jul 04 PHP
30个php操作redis常用方法代码例子
Jul 05 PHP
php中switch语句用法详解
Aug 17 PHP
Laravel构建即时应用的一种实现方法详解
Aug 31 PHP
详解php反序列化
Jun 10 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 类与构造函数解析
2017/02/06 PHP
php中yar框架实例用法讲解
2020/12/27 PHP
JS解决ie6下png透明的方法实例
2013/08/02 Javascript
js delete 用法(删除对象属性及变量)
2014/08/24 Javascript
Bootstrap零基础入门教程(三)
2016/07/18 Javascript
Bootstrap CSS组件之按钮下拉菜单
2016/12/17 Javascript
PHP实现本地图片上传和验证功能
2017/02/27 Javascript
微信小程序中setInterval的使用方法
2017/09/29 Javascript
解决包含在label标签下的checkbox在ie8及以下版本点击事件无效果兼容的问题
2019/10/27 Javascript
vue实现购物车的小练习
2020/12/21 Vue.js
python pickle 和 shelve模块的用法
2013/09/16 Python
Python ORM框架SQLAlchemy学习笔记之数据添加和事务回滚介绍
2014/06/10 Python
Python2.6版本中实现字典推导 PEP 274(Dict Comprehensions)
2015/04/28 Python
python中私有函数调用方法解密
2016/04/29 Python
python字符串,数值计算
2016/10/05 Python
python装饰器-限制函数调用次数的方法(10s调用一次)
2018/04/21 Python
django中forms组件的使用与注意
2019/07/08 Python
python 使用plt画图,去除图片四周的白边方法
2019/07/09 Python
python 标准差计算的实现(std)
2019/07/29 Python
python判断自身是否正在运行的方法
2019/08/08 Python
PyCharm使用之配置SSH Interpreter的方法步骤
2019/12/26 Python
pytorch中的自定义数据处理详解
2020/01/06 Python
将pytorch转成longtensor的简单方法
2020/02/18 Python
使用pygame编写Flappy bird小游戏
2020/03/14 Python
Django基于客户端下载文件实现方法
2020/04/21 Python
什么是python的列表推导式
2020/05/26 Python
Python如何自动获取目标网站最新通知
2020/06/18 Python
python 数据类型强制转换的总结
2021/01/25 Python
Gweniss格温妮丝女包官网:英国纯手工制造潮流包包品牌
2018/02/07 全球购物
党支部活动策划方案
2014/08/18 职场文书
法人单位授权委托书范文
2014/10/06 职场文书
《大禹治水》教学反思
2016/02/22 职场文书
廉洁自律承诺书2016
2016/03/25 职场文书
坚持不是死撑,更重要的是心态
2019/08/19 职场文书
Html5大屏数据可视化开发的实现
2021/06/11 HTML / CSS
微软PC Health Check电脑健康状况检查应用下载(Win11配置检测工具)
2021/06/26 数码科技