使用扩展的 CodeIgniter 框架实现 RESTful 框架

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


表现:


经过 get /library/1/book/2 这种风格的URI来访问控制器并传递参数

其中get是不出如今URI中的,而是一种操做方式(get、post、delete、put),控制器经过判断请求的方式,来决定调用的方法

因此 get /book/1 和 post /book/1 ,虽然访问的URL彻底同样,可是根据请求方式的不一样,实际上调用的是控制器内不一样的方法


实现:

使用 REST_Controller 扩展 CI_Controller

经过路由重写,能够使用非正常格式的 URL 访问对应的对象方法

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

若是经过 GET 发送请求到URL www.test.com/index.php/user/1,
那么会自动调用 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') 来分别获取到参数 foo 和 1

若是经过 POST 发送请求到URL www.test.com/index.php/user/login
那么会自动调用 User 控制器的 login_post() 方法,经过形如 $this->post('name') 分别获取对应的参数

PUT\DELETE 同理


返回数据:


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

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

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


codeigniter-restserver项目地址:github.com/chriskacerg…
php

相关文章
相关标签/搜索