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 相关文章推荐
基于mysql的论坛(3)
Oct 09 PHP
php 字符串函数收集
Mar 29 PHP
php代码运行时间查看类代码分享
Aug 06 PHP
编写安全 PHP应用程序的七个习惯深入分析
Jun 08 PHP
PHP实现利用MySQL保存session的方法
Aug 23 PHP
变量在 PHP7 内部的实现(一)
Dec 21 PHP
PHP结合Ueditor并修改图片上传路径
Oct 16 PHP
PHP自定义函数获取汉字首字母的方法
Dec 01 PHP
PHP实现生成模糊图片的方法示例
Dec 21 PHP
PHP cURL获取微信公众号access_token的实例
Apr 28 PHP
浅谈PHPANALYSIS提取关键字
Mar 08 PHP
Laravel 自动生成验证的实例讲解:login / logout
Oct 14 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 CKEditor 上传图片实现代码
2009/11/06 PHP
比较详细PHP生成静态页面教程
2012/01/10 PHP
PHP如何实现跨域
2016/05/30 PHP
PHP处理bmp格式图片的方法分析
2017/07/04 PHP
Thinkphp开发--集成极光推送
2017/09/15 PHP
php微信公众号开发之音乐信息
2018/10/20 PHP
PHP实现简易图形计算器
2020/08/28 PHP
jquery提升性能最佳实践小结
2010/12/06 Javascript
js Array操作的最简短最容易理解方法
2013/12/09 Javascript
js换图片效果可进行定时操作
2014/06/09 Javascript
Jquery1.9.1源码分析系列(六)延时对象应用之jQuery.ready
2015/11/24 Javascript
JQuery datepicker 用法详解
2015/12/25 Javascript
jQuery插件实现表格隔行变色及鼠标滑过高亮显示效果代码
2016/02/25 Javascript
关于vue.js弹窗组件的知识点总结
2016/09/11 Javascript
Angular.Js中ng-include指令的使用与实现
2017/05/07 Javascript
js使用原型对象(prototype)需要注意的地方
2017/08/28 Javascript
浅谈Vue SSR 的 Cookies 问题
2017/11/20 Javascript
jQuery创建及操作xml格式数据示例
2018/05/26 jQuery
JS实现的RC4加密算法示例
2018/08/16 Javascript
[原创]微信小程序获取网络类型的方法示例
2019/03/01 Javascript
Vue使用zTree插件封装树组件操作示例
2019/04/25 Javascript
JS简单数组排序操作示例【sort方法】
2019/05/17 Javascript
在微信小程序中使用vant的方法
2019/06/07 Javascript
Python使用回溯法子集树模板获取最长公共子序列(LCS)的方法
2017/09/08 Python
Tensorflow卷积神经网络实例进阶
2018/05/24 Python
python实现键盘输入的实操方法
2019/07/16 Python
巧用CSS3的calc()宽度计算做响应模式布局的方法
2018/03/22 HTML / CSS
百丽国际旗下购物网站:优购
2017/02/28 全球购物
Chain Reaction Cycles俄罗斯:世界上最大的在线自行车商店
2019/08/27 全球购物
俄罗斯护发和专业化妆品购物网站:Hihair
2019/09/28 全球购物
美国专业消费电子及摄影器材网站:B&H Photo Video
2019/12/18 全球购物
东方红海科技面试题软件测试方面
2012/02/08 面试题
应用外语系自荐信
2014/06/26 职场文书
2015年学校禁毒工作总结
2015/05/27 职场文书
Nginx访问日志及错误日志参数说明
2021/03/31 Servers
Python基础之进程详解
2021/05/21 Python