经过php
GET /library/1/book/2git
这种风格的 URI 来访问控制器并传递参数, 其中 GET 是不出如今 URL 中的,而是表明一种操做方式(GET、POST、DELETE、PUT),控制器经过判断请求的方式,来决定最终调用的方法。 因此github
GET /book/1json
和架构
POST /book/1函数
虽然访问的 URL 彻底同样,可是根据请求方式的不一样,实际上调用的是控制器内不一样的方法codeigniter
使用 REST_Controller 扩展 CI_Controller,post
根据业务需求,对路由进行重写,能够使用非正常格式的 URL 访问对应的对象方法ui
经过 REST_Controller 判断请求的类型,并将 URL 中的参数交给相应的控制器处理this
若是发送 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);
复制代码