欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

php 使用 restler 框架构建 restfull api

程序员文章站 2022-07-15 15:58:25
...

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