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

 

猜你喜欢