PHP开发APP接口学习笔记
习要点概述1.APP接口简介 2.封装通信接口方法 3.核心技术 4.APP接口实例
服务器和客户端进行接口数据通信:服务器 --》数据库|缓存 --》调用接口 --》客户端
服务器从数据库或缓存中获取数据,调用封装好的接口获取接口数据,生成客户端的数据。
一.APP接口简介
知识对比:php面向对象接口,是一个抽象类,定义必须有interface关键字。如下图:

用于多人协作开发,提供规范的方法名,interface 类中定义抽象方法,在其他类中实现,所有的抽象方法必须实现,否则会报错。
APP接口,也称通信接口,为app提供数据交互。工作原理,app页面加载时,会发出接口请求(http请求),接口进行处理返回接口数据,APP开发工程师解析接口数据(JSON和XML),呈现到客户端。(客户端开发人员需要接口地址和接口数据)

api通信接口通信过程。类似我们常见的BS架构的通信模式。

返回的数据格式:JSON和XML
XML定义:扩展标记语言(extensible markup language)可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。XML格式统一,跨平台和语言非,非常适合数据传输和通信。
注意:区别于HTML标签,xml的节点允许用户自定义。根节点只有一个,节点类似HTML的标签。要有开始节点和结束,类似HTML的双标签和单标签,节点不能为数字。
json定义:(javaScript Object Notation)一种轻量级的数据交互格式,具有良好的可读性和快速编写的特性。可在不同的平台进行数据交换,json采用兼容性很高的,完全独立于语言文本格式。这些特性是json成为 理想的数据交换语言。解析成数组key:value形式。客户端JavaScript可以简单的通过eval()进行JSON数据的读取。
XML数据和JSON数据对比
1.xml数据比json数据可读性强;
2.生成数据方面,json比xml更便利。json数据生成,使用函数json_encode();xml数据生成有4种方法,图示方法是字符串拼接形式生成的;

还有三种方法使用php内置的类:DomDocumen,XMLWriter,SimpleXML类.
3.传输速度json数据比xml数据快。
APP接口做了哪些事情?
1.从数据库或者缓存中获取数据,通过数据接口,返回给客户端。2.提交数据,通过接口提交数据给服务器,服务器处理。
二、封装通信接口数据的方法
1.用json方式封装通信数据
php生成json数据使用json_encode函数,代码如下
json_encode($arr);
该函数只能接受utf-8编码的数据,如传递其他编码的数据,该函数会返回null。编码转换函数iconv
iconv('原来编码格式','需要转换的格式','需要转换的数据')
<?php
/*
**json文件生成
*/
/*iconv函数可以将变量从一种编码格式转换为另一种*/ $arr = array(
'id' => 1,
'name' => 'Tom'
); echo json_encode($arr); ?>
通信数据的标准格式如下:

2.用XML方式封装通信数据
2.1 PHP生成XML数据的方式

2.2使用xmlEncode函数封装xml数据

PHP开发APP接口学习笔记的更多相关文章
- PHP 开发 APP 接口 学习笔记与总结 - Redis 缓存
Redis 可以定期将数据备份到磁盘中(持久化),同时不仅仅支持简单的key/value 类型的数据,同时还提供list,set,hash等数据结构的存储:Memcache 只是简单的key/valu ...
- PHP 开发 APP 接口 学习笔记与总结 - APP 接口实例 [5] 版本设计分析及数据表设计
APP 版本升级以及 APP 演示 ① 版本升级分析以及数据表设计 ② 版本升级接口开发以及 APP 演示 /** * version_upgrade 版本升级信息表 */ CREATE TABLE ...
- PHP 开发 APP 接口 学习笔记与总结 - APP 接口实例 [3] 首页 APP 接口开发方案 ② 读取缓存方式
以静态缓存为例. 修改 file.php line:11 去掉 path 参数(方便),加上缓存时间参数: public function cacheData($k,$v = '',$cacheTim ...
- PHP 开发 APP 接口 学习笔记与总结 - APP 接口实例 [7] APP 错误日志接口
APP 上线以后可能遇到的问题: ① APP 强退 ② 数据加载失败 ③ APP 潜在问题 错误日志需要记录的内容 数据表 error_log 字段: id app_id:app 类别 id did: ...
- PHP 开发 APP 接口 学习笔记与总结 - APP 接口实例 [6] 版本升级接口开发
判定 app 是否需要加密:通过 app 表中的 status 字段来判定,加密的字符串为 app 表中的 key 字段. 在获取的客户端和服务器端(数据库表中相应字段)的版本号不一致时,返回 dat ...
- PHP 开发 APP 接口 学习笔记与总结 - JSON 结合 XML 方式封装通信接口
要求: 1.在一个类中封装多种数据通信方法(JSON,XML),并且只通过一个入口选择需要的数据通信格式 2.客户端开发工程师可以自行选择数据传输格式(GET 方式) response.php < ...
- PHP 开发 APP 接口 学习笔记与总结 - APP 接口实例 [4] 首页 APP 接口开发方案 ③ 定时读取缓存方式
用于 linux 执行 crontab 命令生成缓存的文件 crop.php <?php //让crontab 定时执行的脚本程序 require_once 'db.php'; require_ ...
- PHP 开发 APP 接口 学习笔记与总结 - APP 接口实例 [2] 首页 APP 接口开发方案 ① 读取数据库方式
方案一:读取数据库方式 从数据库读取信息→封装→生成接口数据 应用场景: 数据时效性比较高的系统 方案二:读取缓存方式 从数据库获取信息(第一次设置缓存或缓存失效时)→封装(第一次设置缓存或缓存失效时 ...
- PHP 开发 APP 接口学习笔记与总结 - [ Linux ] 定时任务
定时任务可以使用 crontab 命令来设定: crontab -e #编辑某个用户的cron 服务 crontab -l #列出某个用户cron 服务的详细内容 crontab -r #删除某个 ...
随机推荐
- sublime text下安装插件autoprefixer
有时候在写css样式的时候,分不清哪些属性需要前缀,哪些不需要,总是爱搞混淆了,于是autoprefixer这款插件便应运而生了.虽然在使用webpack的时候,我们可以很方便的使用这个,但是,如果项 ...
- js中数字直接点方法会报错,如1.toString()
Number(11).toString() "11" var num = 111; undefined num.toString() "111" .toStri ...
- Java运行环境(win10)
系统安装Java后,配置运行环境,我的系统是win10,之前随便装了,没想到最近执行javac命令报错,(网上找了一堆都没用)处理方式如下: 环境变量-新建:变量名:%JAVA_HOME% 变量值: ...
- Python:渗透测试开源项目【源码值得精读】
sql注入工具:sqlmap DNS安全监测:DNSRecon 暴力破解测试工具:patator XSS漏洞利用工具:XSSer Web服务器压力测试工具:HULK SSL安全扫描器:SSLyze 网 ...
- python 多环境共存 基础
正在学习python 使用的是3.3 但是由于种种原因吧 还得使用python2.7 所以记录一下 如何安装2个版本 假设 在windows 下面安装的python 版本 和路径 如下 python ...
- Shell脚本 | 健壮性测试之空指针检查
通过 "adb shell am start" 遍历安卓应用所有的 Activity,可以检查是否存在空指针的情况. 以下为梳理后的测试流程: 通过 apktool 反编译 apk ...
- Hadoop2源码分析-HDFS核心模块分析
1.概述 这篇博客接着<Hadoop2源码分析-RPC机制初识>来讲述,前面我们对MapReduce.序列化.RPC进行了分析和探索,对Hadoop V2的这些模块都有了大致的了解,通过对 ...
- linux装tomcat遇到的坑
最开始通过apt-get安装,各种毛病 然后下载tar.gz压缩包解压使用,运行startup.sh可以启动,但是看日志发现 Tomcat启动时卡在 INFO HostConfig.deployDir ...
- 精读JavaScript模式(五),函数的回调、闭包与重写模式
一.前言 今天地铁上,看到很多拖着行李箱的路人,想回家了. 在上篇博客结尾,记录到了函数的几种创建方式,简单说了下创建差异,以及不同浏览器对于name属性的支持,这篇博客将从第四章函数的回调模式说起. ...
- FFmpeg编解码处理1-转码全流程简介
本文为作者原创,转载请注明出处:https://www.cnblogs.com/leisure_chn/p/10584901.html FFmpeg编解码处理系列笔记: [0]. FFmpeg时间戳详 ...