博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用扩展的 CodeIgniter 框架实现 RESTful 架构
阅读量:7154 次
发布时间:2019-06-29

本文共 953 字,大约阅读时间需要 3 分钟。

名词解析

  • REST(表现层状态转化)是一种原则,而符合这种原则的架构就称之为 RESTful 架构。

表现:

通过

GET /library/1/book/2

这种风格的 URI 来访问控制器并传递参数, 其中 GET 是不出现在 URL 中的,而是代表一种操作方式(GETPOSTDELETEPUT),控制器通过判断请求的方式,来决定最终调用的方法。 所以

GET /book/1

POST /book/1

虽然访问的 URL 完全一样,但是根据请求方式的不同,实际上调用的是控制器内不同的方法

实现:

  • 使用 REST_Controller 扩展 CI_Controller

  • 根据业务需求,对路由进行重写,可以使用非正常格式的 URL 访问对应的对象方法

  • 通过 REST_Controller 判断请求的类型,并将 URL 中的参数交给相应的控制器处理

例:

如果发送 GET 请求到

www.test.com/index.php/user/1

那么 RESTful 路由会调用 User 控制器中的 index_get($id) 方法,并将参数 1 传递给 $id。

同理如果发送 GET 请求到 URL

www.test.com/index.php/user/book/name/foo/id/1

则会调用 User 控制器中的 login_get() 方法,通过

$this->get('name')复制代码

$this->get('id')复制代码

来分别获取到 URL 中传递的 $foo 和 $id 变量。

如果发送 POST 请求到

www.test.com/index.php/user/login

则会调用 User 控制器的 login_post() 方法,通过形如

$this->post('name');复制代码

的方法获取对应的参数。

PUT \ DELETE 同理。

返回数据:

控制器中相应的函数经过一系列处理后,需要返回包含足够信息的 json 格式字符串(根据具体需求)

通过形如下面的方法返回json格式的字符串:

$data = ['name'=>'','age'=>''];  $this->response($data);  复制代码

相关链接:

转载地址:http://okogl.baihongyu.com/

你可能感兴趣的文章
javascript跨域解决方案
查看>>
#HTTP协议学习# (一)request 和response 解析
查看>>
Cloud Foundry中gorouter对StickySession的支持
查看>>
尚福林:三家民营银行获准筹建
查看>>
我的Android开发相关文章
查看>>
汇编中Enter与Leave指令
查看>>
int *
查看>>
String,StringBuffer与StringBuilder的差别??
查看>>
巴菲特名言
查看>>
普林斯顿公开课 算法2-3:插入排序
查看>>
HTML5游戏开发引擎Pixi.js新手入门讲解
查看>>
51单片机寄存器组的设置(转)
查看>>
Unity 实现物体破碎效果(转)
查看>>
ASIHTTPRequestErrorDomain Code=5
查看>>
2011年排名前七位的Linux操作系统。
查看>>
SECURITY_ATTRIBUTES 设置低权限
查看>>
php中array_merge合并数组详解
查看>>
阅读jquery源码与js依赖加载的模块化!
查看>>
boost::thread用法
查看>>
计算机原理 发展简史
查看>>