- APP接口介绍
PHP中面向对象接口定义
/**
* 定义一个接口
* 提供一个标准
*/
interface video{
public function getVideos();
public function getCount();
}
class movie implements video(){
public function getVideos(){
echo 1;
}
public function getCount(){
echo 2;
}
}
movie::getVideos();
APP接口(通信接口)---请求APP接口地址---返回接口数据---解析数据---客户端
-
接口文件:(api.php处理一些业务逻辑)
-
接口数据
-
APP如何进行通信
返回数据发送http请求(http://api.com/index.php
)
客户端APP(C)====================================服务器(S)
返回数据(现目前xml和json) -
通信格式区别
- XML:扩展标记语言(Extensible Markup Language,XML),可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言.XML格式统一,跨平台和语言,非常适合数据传输和通信
``` <?xml version="1.0" encoding="UTF-8"?> <item> <title>test</title> <test id="1"/> <description>test1</description> <address>Peking</address> </item> ```
-
JSON:JSON(Javascript Object Notation)一种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性.可在不同平台之间进行数据交换.JSON采用兼容性很高的、完全独立于语言文本格式
{"title":"test","from":"\u5728\u7eb\u6559\80b2\u7f51","description":"test1","address":"Peking"}
-
通信数据格式xml/json区别
- 可读性
- 生成数据方面
- 传输速度
-
APP接口做的事
获取数据: 从数据库中缓存中获取数据,通过接口数据返回给客户端
提交数据: 通过接口提交数据给服务器,服务器入库处理,或者其他处理
-
JSON方式封装接口数据方法
-
PHP生成JSON数据
方法:json_encode()
注: 该函数只能接受==UTF-8==编码的数据,如果传递其他格式的数据该函数会返回NULL -
通信数据标准格式
code 状态码(200.400等)
message 提示信息(邮箱格式不正确,数据返回成功等)
data 返回数据 -
JSON方式如何封装通信数据方法
-
-
XML方式封装接口数据方法
- PHP生成XML数据
(1) 组装字符串
(2) 使用系统类- DomDocument
<?php $dom = new DOMDocument('1.0','utf-8'); $element = $dom->createElement('test','This is the root element'); $dom->appendChild($element); echo $dom->saveXML(); <?xml version="1.0" encoding="utf-8"?> <test>This is the root element</test>
- XMLWriter
- SimpleXML
- DomDocument
- XML方式如何封装通信数据方法
- 封装方法
xmlEncode($code,$message="",$data= [])
- data 数据分析
- array('index'=> 'api');
- array(1,7,89);
- PHP生成XML数据
-
综合通信方式封装
封装方法:show($code,$message,$data=[],$type='json');
- 缓存技术
- 静态缓存
保存在磁盘上的静态文件,用PHP生成数据放入静态文件中 - Memcache.Redis缓存
- Memcache和Redis都是用来管理数据的
- 它们数据都是存放在内存里的
- Redis可以定期将数据备份到磁盘(持久化)
- Memcache只是简单的key/value缓存
- Redis不仅仅支持简单的k/v类型的数据,同时还提供list.set.hash等数据结构的存储
- 静态缓存
-
Redis
Redis数据操作- 开启redis客户端
redis-server 6379.conf
开启客户端redis-cli
- 设置缓存之
set index-cache '数据'
- 获取缓存数据
get index-cache
- 设置过期时间
setex key 10 'cache'
//10s - 删除缓存
del key
PHP操作Redis
- 安装phpredis扩展
- PHP连接Redis服务-connect('127.0.0.1',6379)
- set 设置缓存
- get 获取缓存
- 开启redis客户端
-
Memcache PHP操作Memcache
- 安装Memcache扩展
- PHP连接Memcache服务-connect('127.0.0.1',11211)
- set 设置缓存
- get 获取缓存
- 定时任务
- 定时任务服务提供crontab命令来设定服务
- crontab -e //编辑某个用户的cron服务
- crontab -l //列出某个用户cron服务的详细内容
- crontab -r //删除每个用户的cron服务
格式:
分 时 日 月 星期 命令
* * * * * *
0-59 0-23 1-31 1-21 0-6 command
注: * 代表取值范围内的数字,/ 代表每
例: */1 * * * * php /data/www/cron.php 每分钟执行cron.php
50 7 * * * /sbin/service sshd start 每天7:50开启ssh服务
- 单例模式连接数据库
单例模式三大原则:- 构造函数需要标记为非public(防止外部使用new操作符创建对象),单例类不能在其他类中实例化,只能被其自身实例化
- 拥有一个保存类的实例的静态成员变量$_instance
- 拥有一个访问这个实例的公共的静态方法
- 首页接口开发以及客户端APP演示
- 读取数据库方式开发首页接口
从数据库获取信===>封装===>生成接口数据(应用场景:数据时效性,比较高的系统) - 读取缓存方式开发首页接口
从数据库获取信息===>封装(缓存)===>生成接口数据(用途:减少数据库压力) - 定时读取缓存方式开发首页接口
数据库===>crontab===>http请求/缓存==>封装并返回数据
- 读取数据库方式开发首页接口
- APP版本升级以及APP演示
- 版本升级分析以及数据表设计
- 版本升级接口开发以及APP演示
接口传递参数
app_id | 客户端id 1 安卓pad |
---|---|
version_id | 版本号 |
did | 客户端设备号 |
version_mini | 小版本号 |
encrypt_did | 加密后did串 |
基本参数传递方法和获取方法
方式 | 获取 |
---|---|
get | $_GET |
post | $_POST |
header头 | $_SERVER |
- APP错误日志接口
- APP强退
- 数据加载失败
- APP潜在问题