thinkphp3.2 restful接口的实现
来源:互联网 发布:相关人工智能的书籍 编辑:程序博客网 时间:2024/05/16 00:30
参考thinkphp3.2手册 专题=>restful;
REST(Representational State Transfer表述性状态转移)是一种针对网络应用的设计和开发方式,可以降低开发的复杂性,提高系统的可伸缩性.restful借口的实现必不可少的便是路由的运用。
启用路由:在Application\Common\Conf\config.php里开启路由,'URL_ROUTER_ON' => true, 然后设置路由规则,在模块的配置文件中使用URL_ROUTE_RULES参数进行配置,配置格式是一个数组,每个元素都代表一个路由规则,例如:
'URL_ROUTE_RULES'=>array( 'news/:id' => 'Index/index', ),表示Index控制器里面的index方法,在地址栏内输入index.php/Home/news/china.html则会输出china.xml.简单的了解路由规则的定义格式为:'路由表达式'=>'路由地址和传入参数'。
在控制器里接收通过路由传过来的值:
<?phpnamespace Home\Controller;use Think\Controller\RestController;Class IndexController extends Controller { public function index(){ echo $_GET['id']; }}下面的是天气查询的一个简单小接口的实现:
<?phpnamespace Home\Controller;use Think\Controller\RestController;Class IndexController extends RestController { public function index(){if(__EXT__==""||__EXT__=="html"){$type='html';}else{$type=__EXT__;}//print_r(__EXT__);$pyname = $_GET['id']; switch ($this->_method){ case 'get': // get请求处理代码 if ($type== 'html'){ // 'html';die; $data=$this->city($pyname); //print_r($data); //Response方法会自动对data数据进行输出类型编码,目前支持的包括xml/json/html。 //$this->response($data,'json'); $result=$this->response($data,'html'); //print_r($result); return $result; }elseif($type== 'xml'){ $data = $this->city($pyname); $result = $this->response($data,'xml'); return $result; }elseif($type=='json'){$data=$this->city($pyname);$result=$this->response($data,'json');return $result; } break; case 'put': // put请求处理代码 break; case 'post': // post请求处理代码 break; } } public function city($name){ $sheng=M("sheng"); $city=M("city"); $xian=M("xian"); if($name=='china'){ $res=$sheng->select(); //print_r($res); return $res; }else{//getFieldBy动态查询 根据字段查询并返回某个字段的值 $sid=$sheng->getFieldByPyname($name,'id');//print_r($sid);die; if($sid==""){ $cid=$city->getFieldByPyname($name,'id'); if($cid==""){ $xid=$xian->getFieldByPyname($name,'id'); if($xid==""){ echo "没有该地天气数据"; }else{ $condition['id'] = $xid; $res=$xian->where($condition)->select(); //print_r($res); return $res; } }else{ $condition['p_id'] = $cid; $res=$xian->where($condition)->select(); // print_r($res); return $res; } }else{ $condition['p_id'] = $sid; $res=$city->where($condition)->select(); //print_r($res); return $res; } } }
注意:IndexController继承的是RestController而非Controller;__EXT__表示的是自动检测资源类型.Response方法会自动对data数据进行输出类型编码,目前支持的包括xml/json/html
。 这样,一个简单的天气查询的接口就实现了。
0 0
- thinkphp3.2 restful接口的实现
- springMVC的Restful接口实现
- 基于ThinkPHP3.2的短信接口
- springmvc 实现restful接口
- Restful接口实现方法
- Restful接口实现实例
- ThinkPHP3.2实现简单的数据分页
- Thinkphp3.2下验证码的实现
- restful接口的调用
- restful接口ADF实现代码
- 使用SpringMVC实现RESTFul接口
- RESTful和REST-RPC接口风格的差异与实现
- yii2-restful的接口优化和实现互相调用
- 使用SpringSecurity和SpringMVC来实现安全的RESTFul接口
- 使用token和SpringMVC来实现安全的RESTFul接口
- thinkphp3.2的运用
- thinkphp3.2的运用
- thinkphp3.2的运用
- SSM三大框架整合详细教程(Spring+SpringMVC+MyBatis)
- Java 加密 AES 对称加密算法
- ApkTool原码修改记录
- nc查看报错日记的文件夹
- 黑马程序员-----面向对象
- thinkphp3.2 restful接口的实现
- vmvare下网络设置的三种方式
- iOS7 设置状态栏文字颜色
- 天声人語 20150515
- 2
- 作为程序员,应该如何征战“应聘沙场”?
- 模拟新浪微博随便看看栏目
- 日经春秋 20150515
- FluentNHibernate之基本映射详解