php 使用 restler 框架构建 restfull api
php 使用 restler 框架构建 restfull api
restler 轻量级,小巧,构建restfull api非常方便!
官网:http://restler3.luracast.com/
目前最后的是3.0版本,我测试使用的是2.2版本;
一:安装restler2
1. 下载 https://github.com/Luracast/Restler/tree/2.2.0
2. exmple目录下放的是例子
3. 把restler 目录的所有文件放到你的web服务下;
二:开始创建restfull api
1. index.php
<?php //引入restler库
require_once './restler/restler.php'; $r = new Restler();
//配置支持的返回数据格式,json,xml等
$r->setSupportedFormats('JsonFormat');
//接口列表文件
$r->addAPIClass('api');
$r->handle(); ?>
2. 主接口文件 api.php, 上述1中的api表示的类名api
<?php //工具类
include 'util.php'; class api
{ //get 请求 /url/xml
public function getXml($deviceType)
{
if (!$deviceType) {
return array('xml' =>"error ");
} if ($deviceType=='1') { //return ios
return array('xml' =>"ios");
}
elseif ($deviceType=='2') { //return android
return array('xml' =>"android");
} elseif ($deviceType=='3') {
//return pc
return array('xml' =>"pc");
} else
{
return array('xml' =>"none support deviceType");
} } //post 请求,
public function postXXL($dev)
{
return returnXML($dev);
} //当类名与文件名相同时,可以不用 include 该类
public function getAAA()
{
$bd = new Baidu();
return $ret = array('site' => "baidu.com", );;
} } ?>
三:访问测试
1. api.php中所有public的方法,就是请求的方法,get或post 以方法名的前关键字为准;
如getXml方法,测试请求方式为
get http://127.0.0.1/tp/api/xml.josn
或 http://127.0.0.1/tp/api/xml/1.json
或http://127.0.0.1/tp/api/xml?deviceType=1
后面的1对应getXml的请求字段 $deviceType
2. 其他函数同上
3. 如果要同时支持xml
如http://127.0.0.1/tp/api/xml/1.xml
http://127.0.0.1/tp/api/xml/1.json
在index.php配置
$r->setSupportedFormats('JsonFormat', 'XmlFormat');
更多:http://restler3.luracast.com/examples/index.html
php 使用 restler 框架构建 restfull api的更多相关文章
- 小白的springboot之路(十一)、构建后台RESTfull API
0.前言 开发系统中,前后端分离,后端一般返回RESTfull API,前端调用API构建UI,彼此分离.互相完全独立: 后台API中,我们一般返回结果码.提示信息.数据三部分内容,如图: 我们今天 ...
- restFull api接口
RestFull api接口 前后端分离开发的接口规范 什么是RestFull 是目录比较流行的api设计规范 注:restfull api规范应用场景,前后端分离的项目中 数据接口的现场 例如: / ...
- 基于Dubbo框架构建分布式服务(一)
Dubbo是Alibaba开源的分布式服务框架,我们可以非常容易地通过Dubbo来构建分布式服务,并根据自己实际业务应用场景来选择合适的集群容错模式,这个对于很多应用都是迫切希望的,只需要通过简单的配 ...
- 基于Spring4+SpringMVC4+Mybatis3+Hibernate4+Junit4框架构建高性能企业级的部标GPS监控平台
开发企业级的部标GPS监控平台,投入的开发力量很大,开发周期也很长,选择主流的开发语言以及成熟的开源技术框架来构建基础平台,是最恰当不过的事情,在设计之初就避免掉了技术选型的风险,避免以后在开发过程中 ...
- 基于Dubbo框架构建分布式服务
Dubbo是Alibaba开源的分布式服务框架,我们可以非常容易地通过Dubbo来构建分布式服务,并根据自己实际业务应用场景来选择合适的集群容错模式,这个对于很多应用都是迫切希望的,只需要通过简单的配 ...
- spring boot / cloud (三) 集成springfox-swagger2构建在线API文档
spring boot / cloud (三) 集成springfox-swagger2构建在线API文档 前言 不能同步更新API文档会有什么问题? 理想情况下,为所开发的服务编写接口文档,能提高与 ...
- [转载] 基于Dubbo框架构建分布式服务
转载自http://shiyanjun.cn/archives/1075.html Dubbo是Alibaba开源的分布式服务框架,我们可以非常容易地通过Dubbo来构建分布式服务,并根据自己实际业务 ...
- RabbitMQ框架构建系列(二)——RabbitMQ基础知识介绍
上一篇记录了一下AMQP协议,RabbitMQ是一个Erlang开发的AMQP协议的开源实现.这一篇简单的介绍一下RabbitMQ的基本原理. 一.RabbitMQ的特点 1.可靠性:RabbitMQ ...
- 使用Express构建RESTful API
RESTful服务 REST(Representational State Transfer)的意思是表征状态转移,它是一种基于HTTP协议的网络应用接口风格,充分利用HTTP的方法实现统一风格接口的 ...
随机推荐
- eclipse字体推荐
首先大家可以看看这里面推荐的最佳十款字体,http://www.iteye.com/news/11102-10-great-programming-font 但是经过测试发现,排名第一的字体在ecli ...
- 2016 Al-Baath University Training Camp Contest-1 A
Description Tourist likes competitive programming and he has his own Codeforces account. He particip ...
- RabbitMQ术语
工作队列:Working Queue 分配:多个客户端接收同一个Queue,如何做负载均衡(分配). Round-robin分配:多个接收端接收同一个Queue时,采用了Round-robin ...
- 【Eclipse】安装subclipse的Eclipse插件
下载地址 subclipse subclipse Download and Install 一般来说,有两种方式:在线安装.离线包安装. 离线包安装 这里记录的是离线包的安装方式: 下载好离线包 He ...
- win7下如何安装JDK
第一步:点击下载好的JDK安装程序,百度一下,网上很多,然后弹出如下界面,点击“下一步”即可. 2 第二步:此时比较关键,设置安装的路径,可以事先建立一个文件夹,以在D盘为例,如D:\java. 3 ...
- java properties读取与设值
import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream; ...
- BZOJ 2879 美食节(费用流-动态加边)
题目链接:http://61.187.179.132/JudgeOnline/problem.php?id=2879 题意:有n道菜,每道菜需要b[i]份,m个厨师,第j个厨师做第i道菜需要时间a[i ...
- CUBRID学习笔记 7 ms常见错误
基本不是权限问题,就是dll问题. 重新下载或应用dll注意版本. 权限的问题,先本机测试. 看看在web管理有无问题. 剩下的基本就简单了 欢迎转载 ,转载时请保留作者信息.本文版权归本人所有, ...
- 函数(def)
一.为什么要使用函数: 面向过程的编程在代码里有很多代码是可以重复利用的,如果使用面向过程编程会使代码显得纷繁复杂,不利于他人和自己日后的阅读.而在函数式编程里,则可以把每个可重复利用的功能封装在一个 ...
- git :设置 object-c 的忽略文件
使用 git 命令行来进行版本控制的时候, 需要设置忽略文件. 这里能找到所有语言的忽略文件的内容:https://github.com/github/gitignore OBJECT的忽略文件内容: ...