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 #删除某个 ...
随机推荐
- [转载]Apple Watch 开发详解
Apple Watch 开发详解 Apple Watch现在对于第三方开发者来说更多的还是一块额外的屏幕.暂时WatchKit没有能给出足够的接口.现在Watch App的主要运算逻辑需要依赖iPho ...
- 测试工具之Jmeter(各部件简单介绍)
jmeter可以到官网下载: http://jakarta.apache.org/ 下载后解压即可使用,双击如下文件打开Jmeter界面: $JMETER_HOME\apache-jmeter-3.1 ...
- Android 性能优化-启动时间
adb shell am start -W -n com.xxxx(包名)/xxx.xxxActivity(launch Activity)
- Dockerfile指令详解
Dockerfile中包括FROM.MAINTAINER.RUN.CMD.EXPOSE.ENV.ADD.COPY.ENTRYPOINT.VOLUME.USER.WORKDIR.ONBUILD等13个指 ...
- String 字符串中含有 Unicode 编码时,转为UTF-8
1.单纯的Unicode 转码 String a = "\u53ef\u4ee5\u6ce8\u518c"; a = new String(a.getBytes("UTF ...
- Find the Top 10 commands in your linux box!
history | awk '{print $2;}' | grep -v '^./' | sort -d | uniq -c | sort -nr | head -n 10 grep, '-v' ...
- 动态规划法(六)鸡蛋掉落问题(一)(egg dropping problem)
继续讲故事~~ 这天,丁丁正走在路上,欣赏着路边迷人的城市风景,突然发现前面的大楼前围了一波吃瓜群众.他好奇地凑上前去,想一探究竟,看看到底发生了什么事情. 原来本市的一位小有名气的科学家 ...
- 【转】Git 教程之协同开发
前面我们已经介绍过远程仓库的相关概念,不过那时并没有深入探讨,只是讲解了如何创建远程仓库以及推送最新工作成果到远程仓库,实际上远程仓库对于团队协同开发很重要,不仅仅是团队协同开发的基础,也是代码备份的 ...
- elasticsearch安装之各种坑
我用的是centos6.5,安装elasticsearch5.2.0 首先不说了,安装JDK1.8,下载elasticsearch5.2.0 https://www.elastic.co/downlo ...
- OSX系统下配置Apache+PHP+MySQL+Navicat
概述 OSX系统对于PHP运行非常友好,我们只需要进行简单的配置便可以开始进行使用,本篇文章将一步一步地介绍Apache.PHP和MySQL的安装与配置,为开始进行开发铺好路 Apache 启动Apa ...