php开发app接口

用interface关键字定义,示例:

interface video(){

public function getVideos();

public function getCount();//这都是虚拟的方法

}

接口的实现:【接口中给的所有方法都必须在示例中实现】

class movie implements video{

public function getVideo(){

//do something

}

public function getCount(){

//do something

}

}

接口地址——返回接口数据——解析数据——客户端

APP(通信)接口:

1、接口地址(http://app.com/api.php?format=xml);

2、接口文件(api.php,处理一些业务逻辑);

3、接口数据

APP如何进行通信:

客户端App触发——》发送http请求(接口地址)——》服务器——》返回客户端

返回的数据格式一般为xml或者json

地址被封装在app里面用户不可见,与一般的web不同

XML:扩展标记语言,节点可以自定义(而HTML内标签是不可自定义的),格式统一,可跨平台使用,适合通信和传输。

示例:

<?xml version=”1.0” encoding=”UTF-8”?>

<item>

<title>singwa</title>

<test id=”1”/>

<description>singwa1</description>

<address>beijing</address>

</item>

XML可读性强;JSON生成数据方面、传输速度方面强。

接口作用:获取数据、提交数据。

封装通信接口数据方法

JSON方式封装通信接口:json_encode()【必须是UTF-8的形式】

示例:

<?php

$arr = {

‘id’ => 1;

‘username => Tom’

}

echo json_encode($arr);

iconv(‘UTF-8’,’GBK’,$data)//用于进行编码转化,本例将$data由UTF-8转化为GBK

通信数据标准格式

1、code:200   //状态码

2、message    //提示信息

3、data       //返回数据

JSON封装数据方法示例(response.php):

<?php

class Respomse{

public static function json($code,$message = ‘’,$data = array()){

if(!is_numeric($code)){

return ‘’;//如果传过来的$code不是数字返回空

}

$result = array(

‘code’ => $code,

‘message’ => $message,

‘data’ => $data

);

echo json_encode($result);

exit;

}

}

在其他文件调用这个接口:

<?php

require_once(‘./response.php’);

$arr = array(

‘id’ => 1,

‘name’ => ‘fareise’

);

Response::json(200,’数据返回成功’,’$arr’);//这样就会返回一个json数据

XML方式封装接口数据方法

PHP生成XML数据的方法

1、组装成字符串

2、使用系统类(DomDocument;XMLWriter;SimpleXML)

示例:

<?php

class Response{

public static function xml(){

header(“Content-Type:text/xml”);//将类型转化为xml的类型

$xml = “<?xml version=’1.0’ encoding=’UTF-8’?>\n”

$xml.=”<root>\n”;

$xml.=”<code>200</code>\n”;

$xml.=”<message>200</message>\n”;

......

$xml.=”</root>”;

echo $xml;

}

}

XML方式封装通信接口

<?php

class Response{

public static function xmlEncode($code,$message,$data){

if(!is_numeric($code)){

return ‘’;

}

$result = array(

‘code’ => $code,

‘message’ => $message,

‘data’ => $data,

);

header(“Content-Type:text/xml”);

$xml = “<?xml version = ‘1.0’ encoding = ‘UTF-8’?>”

$xml .= “<root>”;

$xml .= self::xmlToEncode($result)   //通过定义的这个方法对数据进行xm解析

$xml .= “</root>”;

}

publlc static function amlToEncode($data){  // 通过这样的遍历将每一条数据写成标签

$xml = $attr = “”;

foreach($data as $key => $value){//如果key是数字则转化为<item id=”1”>的形式

if(is_numeric($key)){

$attr = “id = ‘{$key}’”;

$key = “item”;

}

$xml .= “<{$key}{$attr}>”;

//如果是数组,采用递归的方式把数组内每一个元素都用标签输出

$xml .= is_array($value)?self::xmlToEncode($value):$value;

$xml .= “</{key}>”

}

}

}

调用示例:

$data = array(

‘id’ => 1,

‘name’ => fareise

‘type => array(4,5,6)’

)

Response::xmlEncode(200,’sucess’,$data);

综合通信封装方法(两种都支持)

在前两个方法都写好的基础上:

const JSON = ‘json’//设定默认值

public static function show($code,$message = ‘’,$data = array(),$type=self::JSON){

if(!is_numeric($code)){

return ‘’;

}

$type = $_GET[‘format’]?$_GET[‘format’]:self””JSON;

$result = array(

‘code’ => $code,

‘message’ => $message,

‘data’ => $data

);

if($type == ’json’){

self::json($code,$message,$data);

exit;

}elseif($type == ‘array’){

var dump($result)

}elseif($type == ‘xml’){

self::xmlEncode($code,$message,$data);

exit;

}else{

//TODO

}

}

时间: 2024-08-26 00:06:27

php开发app接口的相关文章

PHP开发APP接口(二)

这里将会调用前面博客的数据库连接单例.文件缓存类和开发APP接口(一) [php] view plain copy print? <?php // http://app.com/list.php?page-=1&pagesize=12 require_once('./response.php'); require_once('./file.php'); $file = new File(); $data = $file->cacheData('index_cron_cahce'); i

小蚂蚁学习APP接口开发(7)—— APP接口实例——读取缓存方式开发APP接口的代码案例

从数据库中直接读取数据,虽然时效性很强,但是对数据库造成很大压力,尤其是在高访问量的情况下.这时候可以通过缓存,来有效的缓解了这一压力,虽然时效性有些不足,但是服务器的抗压能力却达到了很大的提高. 读取缓存方式的中心思想: 当请求进来时,先查看是否有缓存,如果有并且缓存还在有效时间内,不再查询数据库,直接返回缓存即可:如果没有或者已经过了有效时间,查询数据库,返回数据,同时生成一份新的缓存,供以后使用. 代码案例,还是在前几天的代码基础上进行改造完善. File静态缓存类    (原来的代码请参

PHP开发APP接口(七)

APP接口实例 单例模式连接数据库首页接口的开发以及客户端app的演示APP版本升级接口APP错误日志的接口 单例模式连接数据库学习要点:掌握单例模式设计php连接数据库 单例模式:一个类只能拥有一个实例:<?php class Db{    puclic function __construct(){ }} $db=new Db();$db1=new Db();普通的类可以产生多个实例 单例模式三大原则:1.构造函数需要标记为非Public(防止外部使用new操作符创建对象),单例类不能在其他

PHP开发APP接口(八)

首页接口的开发以及客户端app的演示方案一:读取数据库方式开发首页接口从数据库获取信息 封装 生成接口数据应用场景:数据是时效性比较高的系统 方案二:读取缓存方式开发首页接口从数据库获取信息 封装写入缓存 设定缓存失效时间 返回数据在缓存时效内请求是从缓存里面获取数据:用途:减少数据库的压力,用途很广,搜狐视频,优酷首页 方案三:定时读取缓存方式开发首页接口定时生成缓存 应用端请求生存好的缓存 方案一:如何获取数据,如何将获取的数据快速生成接口数据 安装start bluestacks安卓模拟器

PHP 开发 APP 接口 学习笔记与总结 - APP 接口实例 [3] 首页 APP 接口开发方案 ② 读取缓存方式

以静态缓存为例. 修改 file.php line:11 去掉 path 参数(方便),加上缓存时间参数: public function cacheData($k,$v = '',$cacheTime = 0){ //文件名 $filename = $this->_dir.$k.'.'.self::EXT; ..... line:25 把缓存时间设置为 11 位的数字,如果不满 11 位,则在时间前面补 0.再把缓存时间和缓存内容进行拼接: $cacheTime = sprintf('%011

PHP 开发 APP 接口总结 - JSON 结合 XML 方式封装通信接口

要求: 1.在一个类中封装多种数据通信方法(JSON,XML),并且只通过一个入口选择需要的数据通信格式 2.客户端开发工程师可以自行选择数据传输格式(GET 方式) response.php <?php class Response{ const JSON = 'json'; //封装的综合方法,默认的数据类型为json public static function show($code,$message = '',$data,$type = self::JSON){ if(!is_numer

PHP 开发 APP 接口--错误日志接口

APP 上线以后可能遇到的问题: ① APP 强退 ② 数据加载失败 ③ APP 潜在问题 错误日志需要记录的内容 数据表 error_log 字段: id app_id:app 类别 id did:客户端设备号 version_id:版本号 version_mini:小版本号 error_log:错误信息(由 APP 返回,客户端开发工程师开发) error.php 处理 app 错误日志 <?php require_once('./common.php'); class ErrorLog e

「PHP开发APP接口实战009」日常安全防范之防SQL入和XSS攻击

防SQL注入和XSS攻击通用过滤 首先在 /app/library/ 目录下创建 Security.php 文件并添加以下代码: <?php /** * * 防SQL注入和XSS攻击通用过滤 */ class Security { public static function filter(&$params) { if (!is_array($params)) { return; } $patterns = ['/([\x00-\x08,\x0b-\x0c,\x0e-\x19])/i', '

PHP开发APP接口(一)

php以json或者xml 形式返回给app.明白这点就很好说了,就是把数据包装成json或者xml,返回给APP 定义抽象APP基类: <?php /** * 定义API抽象类 */ abstract class Api { const JSON = 'Json'; const XML = 'Xml'; const ARR = 'Array'; /** * 定义工厂方法 * param string $type 返回数据类型 */ public static function factory(