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 #删除某个 ...
随机推荐
- Linux - 查看文件信息的三个命令
ls命令 - list directory contents 显示文件详细信息:ls -l <file name> file命令 - determine file type determi ...
- Java 8 停止维护,Java 9 难产,IDEA 2018 发布,还有……
祝大家五一劳动节快乐,工作顺利! 又到了总结上个月干货的时候了,这个月我们带来了各种Java技术干货,各种送书抽奖福利,各种面试题分享,各种最新动态资讯等. 5.1重磅活动 | 区块链免费送书 &am ...
- 内存管理-slab[代码]
主要介绍kmalloc和kfree代码流程,侧重kmalloc和kfree流程中锁使用规则,会引用到cpuset,mempolicy(内存策略),numa相关知识.如果读起来比较困难可以参考另一篇随笔 ...
- 【xsy2304】哈 最短路
题目大意:有一个$n$个点,$m$条有向边的图,有$q$组询问. 每次询问:从$a$到$b$,经过不超过$c$条边,且依次经过的边边权递增,问最短路为多少,无解输出-1. 数据范围:$n≤150$,$ ...
- 课程五(Sequence Models),第一 周(Recurrent Neural Networks) —— 0.Practice questions:Recurrent Neural Networks
[解释] It is appropriate when every input should be matched to an output. [解释] in a language model we ...
- Spring Boot + Spring Cloud 实现权限管理系统 后端篇(十九):服务消费(Ribbon、Feign)
技术背景 上一篇教程中,我们利用Consul注册中心,实现了服务的注册和发现功能,这一篇我们来聊聊服务的调用.单体应用中,代码可以直接依赖,在代码中直接调用即可,但在微服务架构是分布式架构,服务都运行 ...
- SpringBoot集成Redis
1.引入 spring-boot-starter-redis <dependency> <groupId>redis.clients</groupId> <a ...
- C语言第五讲,语句 顺序循环选择.
C语言第五讲,语句 顺序循环选择. 一丶语句的简明了解 我们知道,在编写C语言程序的时候,代码是顺序执行的. 从上往下执行. 但是我们可以控制流程的. 在控制之前,我们要先熟悉什么是语句. 相比大家学 ...
- [IOI2014] 假期
Description 有\(N(N\leq 10^5)\)个排列在一条线上的城市,每个城市有\(val_i\)个景点.每天你可以选择在当前城市\(i\)游览景点,或者前往城市\(i-1\)或城市\( ...
- GNU μC/OS-II 在 S3C2440 上中断的实现
上一篇文章介绍了S3c2440的中断体系结构,今天我们来分析一下GNU-uC/OS-II在S3c2440上中断的实现. 首先找到IRQ的中断的向量,位于 2440init.S : OK ,我们通过名字 ...