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的更多相关文章

  1. 小白的springboot之路(十一)、构建后台RESTfull API

    0.前言 开发系统中,前后端分离,后端一般返回RESTfull  API,前端调用API构建UI,彼此分离.互相完全独立: 后台API中,我们一般返回结果码.提示信息.数据三部分内容,如图: 我们今天 ...

  2. restFull api接口

    RestFull api接口 前后端分离开发的接口规范 什么是RestFull 是目录比较流行的api设计规范 注:restfull api规范应用场景,前后端分离的项目中 数据接口的现场 例如: / ...

  3. 基于Dubbo框架构建分布式服务(一)

    Dubbo是Alibaba开源的分布式服务框架,我们可以非常容易地通过Dubbo来构建分布式服务,并根据自己实际业务应用场景来选择合适的集群容错模式,这个对于很多应用都是迫切希望的,只需要通过简单的配 ...

  4. 基于Spring4+SpringMVC4+Mybatis3+Hibernate4+Junit4框架构建高性能企业级的部标GPS监控平台

    开发企业级的部标GPS监控平台,投入的开发力量很大,开发周期也很长,选择主流的开发语言以及成熟的开源技术框架来构建基础平台,是最恰当不过的事情,在设计之初就避免掉了技术选型的风险,避免以后在开发过程中 ...

  5. 基于Dubbo框架构建分布式服务

    Dubbo是Alibaba开源的分布式服务框架,我们可以非常容易地通过Dubbo来构建分布式服务,并根据自己实际业务应用场景来选择合适的集群容错模式,这个对于很多应用都是迫切希望的,只需要通过简单的配 ...

  6. spring boot / cloud (三) 集成springfox-swagger2构建在线API文档

    spring boot / cloud (三) 集成springfox-swagger2构建在线API文档 前言 不能同步更新API文档会有什么问题? 理想情况下,为所开发的服务编写接口文档,能提高与 ...

  7. [转载] 基于Dubbo框架构建分布式服务

    转载自http://shiyanjun.cn/archives/1075.html Dubbo是Alibaba开源的分布式服务框架,我们可以非常容易地通过Dubbo来构建分布式服务,并根据自己实际业务 ...

  8. RabbitMQ框架构建系列(二)——RabbitMQ基础知识介绍

    上一篇记录了一下AMQP协议,RabbitMQ是一个Erlang开发的AMQP协议的开源实现.这一篇简单的介绍一下RabbitMQ的基本原理. 一.RabbitMQ的特点 1.可靠性:RabbitMQ ...

  9. 使用Express构建RESTful API

    RESTful服务 REST(Representational State Transfer)的意思是表征状态转移,它是一种基于HTTP协议的网络应用接口风格,充分利用HTTP的方法实现统一风格接口的 ...

随机推荐

  1. [转]Windows8下设置VS默认启动方式为管理员启动

    在Windows7下通常使用修改属性的方式:在任意快捷方式上右击,选择属性,选择高级,选择以管理员身份启动: 在Windows8下如上设置后,右击直接打开项目的话是不会以管理员身份启动的,这里用比较h ...

  2. linux下如何安装配置redis及主从配置

    redis的优点:支持主从备份,操作指令丰富,支持异步的数据持久化 将 redis 安装到 /usr/local/webserver/redis 1.下载安装包 wget http://redis.g ...

  3. 多态,虚拟方法,重写,接口,类库,委托,is,as运算符,泛型集合,万能变量

    多态:简而言之就是龙生九子,各有不同 有了继承,才有了多态 1.虚方法 virtual重写 override父类中的方法,在子类中并不适用,那么子类需要自主更改继承的方法或者是属性,那父类中加了vir ...

  4. Spring MVC 详解(二)

    前端控制器 在web.xml中配置: 在springmvc.xml中配置springmvc架构三大组件(处理器映射器.适配器.视图解析器) 处理器映射器 在springmvc.xml中配置: Bean ...

  5. ubuntu su 密码

    Ubuntu的默认root密码是随机的,即每次开机都有一个新的root密码. Ubuntu刚安装后,不能在terminal中运行su命令,因为root没有默认密码,需要手动设定.以安装ubuntu时输 ...

  6. TreeList的使用

    添加列 TreeListColumn column = treeList1.Columns.Add(); column.Caption = @"建筑列表"; column.Visi ...

  7. Bson

    https://en.wikipedia.org/wiki/BSON BSON /ˈbiːsɒn/ is a computer data interchange format used mainly ...

  8. 简单几步配置gitlab

    简单几步配置gitlab 之前配置gitlab需要很多步骤,要装apache2.ruby.tomcat.mysql等一片东西.有没有更简单的方式呢?现在可以借助bitnami,简化了很多. 可以参考v ...

  9. 图-用DFS求连通块- UVa 1103和用BFS求最短路-UVa816。

    这道题目甚长, 代码也是甚长, 但是思路却不是太难.然而有好多代码实现的细节, 确是十分的巧妙. 对代码阅读能力, 代码理解能力, 代码实现能力, 代码实现技巧, DFS方法都大有裨益, 敬请有兴趣者 ...

  10. Sql 行转列问题总结

    行转列问题总结 1.行转列 ---1.最简单的行转列/* 问题:假设有张学生成绩表(tb)如下:姓名 课程 分数张三 语文 74张三 数学 83张三 物理 93李四 语文 74李四 数学 84李四 物 ...