技术开发 频道

在CodeIgniter框架中使用RESTful服务

  接着我们复习下在RESTful架构中的四类关于资源的操作。

  GET:使用GET去获得一个已经存在的资源的信息。通常我们在浏览器中输入url其实即发出了一个GET的请求。

  POST:使用POST去更新一个已经存在的资源。比如表单中的提交数据行为,都属于POST类型。

  PUT:使用HTTP的报文头的PUT,可以去新建一种资源,目前不是所有浏览器支持,所以本文不作讨论。

  DELETE:使用DELETE去删除一种资源,同样目前不是所有浏览器都支持。

  现在我们可以根据四种HTTP RESTful语义去形成如下框架:

<?
require(APPPATH'.libraries/REST_Controller.php');

class Example_api extends REST_Controller {

    
function user_get()
    {
    
// 获得一个用户的信息
    }

    
function user_put()
    {
        
// 创建一个新用户
    }

    
function user_post()
    {
        
//更新用户信息
    }

    
function user_delete()
    {
        
//删除用户信息
    }
}
?>

   接下来我们充分利用CodeIgniter框架自身的REST_Controller的优势,完善为如下代码:

<?php
require(APPPATH'.libraries/REST_Controller.php');

class Example_api extends REST_Controller {

    
function user_get()
    {
        
$data = array('returned: '. $this->get('id'));
        
$this->response($data);
    }

    
function user_post()
    {
        
$data = array('returned: '. $this->post('id'));
        
$this->response($data);
    }

    
function user_put()
    {
        
$data = array('returned: '. $this->put('id'));
        
$this->response($data;
    }

    
function user_delete()
    {
        
$data = array('returned: '. $this->delete('id'));
        
$this->response($data);
    }
}
?>

   以上代码中包含了如下几个片段,下面逐一讲解:

  $this->get() ——  其中,使用这个从形如index.php/example_api/user?id=1或者如index.php/example_api/user/id/1的连接中获得资源,比如这里就获得其id的值,然后在数组中返回该id对应的数值。

  $this->post() —— 其实是CodeIgniter中调用了其框架的$this->input->post()方法,进行提交操作,并且利用了XSS保护特性。

  $this->put() —— 取curl中提交的或者HTTP协议头的PUT参数的内容。

  $this->delete() —— 取curl中提交的或者HTTP协议头的delete参数的内容。

  $this->response() —— 个方法中,主要是将处理的数据返回给浏览器,你可以指定一个HTTP状态码去表示该次返回结果的状态,比如在数据库中找不到某个记录,可以使用如$this->response(array(‘error’ => ‘User not found.’)去返回结果。

0
相关文章