热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

TP3.2Rest使用

php教程|php手册thinkphp代码,代码示例,代码参考,php短信,数据库备份代码,令牌验证,去除代码中的空白和注释thinkphpphp教程-php手册thinkphp3

php教程|php手册TP 3.2 Rest使用
thinkphp代码,代码示例,代码参考,php短信,数据库备份代码,令牌验证,去除代码中的空白和注释thinkphp
php教程-php手册
thinkphp 3.2 rest 的操作
本人是做终端开发的,以前没有搞过php,因为有需求看了看,thinkphp这周刚开始看,因为来的时候下载的最新版,终端开发php作为后台大多是接口,所以想学习使用下tp的rest,看了几个相关的帖子都是讲的老版本的,extent下面有这个,然后有个开关开启就行了,又发现怎么开启模式后整个程序都变成了rest模式,没有测试,反正下了新版本中开启了无效,看了下源码没有这块的逻辑。
php源码项目 门户网站开发,起动ubuntu出现黑屏,免费数据爬虫软件,ngrok php,谷歌seo学徒lzw
昨天发现git提交中加上了RestController,于是自己折腾了下,貌似调通了,直接继承的,这样比较灵活,想某个模块下面那个controller实现rest模式都可以。由于还没有深入看才点皮毛,也不知道用法对不对,说的不对的地方大家多指正。
邮件源码系统,ubuntu怎么更改签名,tomcat打开服务闪退,新浪期货爬虫,php运行内存大,曹操seolzw
1、下载最新的框架,最好是git上面的开发版本,不要3.2那个正式版,貌似RestController还没有加进去。
.htaccess 文件随便以前的或者one think里面复制一个过来吧。这样输入网址的时候可以免掉index.php 。环境配置之类的就不说了,运行下。程序下面application就有。到application home controller目录 新建一个文件。
内容如下
//InfoController.class.php namespace Home\Controller;
use Think\Controller\RestController;
class InfoController extends RestController {
仿百姓网源码下载,ubuntu看本机ip,tomcat字符集转码插件,爬虫玩具会动,泰牛php课程介绍文档,链接隐藏 seolzw
//default is json
public function read_json(){
echo "read_default_get_json";
}

//get
public function read_get_json(){
echo "read_get_json";
}

//delete
public function read_delete_json(){
echo "read_delete_json";
}

//put/update
public function read_put_json(){
echo "read_put_json";
}

//get
public function read_post_json(){
echo "read_post_json";
}

//custom
public function read_custom_json(){
echo "read_custom_json";
}
}
这个时候用ie 等浏览器访问是不行的,会访问出现403错误的,至于为什么可以看下源码RestController中的call方法,会根据 请求端的 请求头 接受类型或者设置好的默认类型等进行一系列的拼接方法,如果拼接的方法存在就调用,不存在就(_ERROR_ACTION_)403了。

浏览器中访问的话,call方法大概会适配出来的访问action为read_get_html 因为我上面没有实现这个方法,所以访问会失败。

所以这个时候用curl去请求。windows下面curl没有的话去安装一个吧。
然后开始访问如下:

我的url是本地host中做了个映射,也可以直接127.0.0.1这个就看自己的配置了。
可见通过请求类型的不同访问到了我们的controller中不同的动作,而我们的url只有一个。

上面我的代码中有个read_json方法,这个是永远执行不到的,因为RestController defaultMethod为get,不识别的请求类型 比如我最后一个other请求会使用默认的方式,拼接出来的为 read_get_json,这个方法存在所以默认都会执行该方法了,但是如果没有这个方法方法,比如把这个方法注释掉,当识别不出来的时候请求类型的时候就会执行read_json。

另外就是测试了下CUSTOM, 我的意思是看下定制自己的请求类型。当然这样做不符合标准,有get post put delete一般需求都是相当的够用。这里只是做一个测试。

直接请求是会到默认的去的,但是我这里成功执行到了,需要在RestController中修改$allowMethod,如下
// REST允许的请求类型列表
protected $allowMethod = array('get','post','put','delete' ,'custom');
当然我也不建议这样直接修改源码的,最好是遵循设计模式,面向扩展而不面向修改,有这样的需求的时候在上层利用config进行动态配置,而不要修改框架。
当然因为我没有看明白,还没有看见这个东西目前能动态配置,我想稍微修改下就可以做到了,大概扫了下3.1的代码这块貌似灵活点,可能3.2还没有加全吧。

没有搜到什么教学,主要新版本刚出来,就自己琢磨了下,大概就是这么回事了,rest就是一个建议标准,RestController 中也就是$_SERVER['HTTP_ACCEPT']拼接了下方法,如果没有这个东西自己rewrite或者就写insert get delete等方法返回json,然后通过不同的url请求数据或者说rewrite下其实都一样。只是这个潮流,看起来高端一点。 应该差不多了吧,剩下的有问题,欢迎交流指正~

AD:真正免费,域名+虚机+企业邮箱=0元


推荐阅读
author-avatar
Aircraftl
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有