Codeigniter - 创建 RESTful API

作者:编程家 分类: php 时间:2025-12-20

使用CodeIgniter框架可以轻松地创建RESTful API。RESTful API是一种基于HTTP协议的Web服务架构,它使用标准HTTP方法(GET、POST、PUT、DELETE)来实现数据的增删改查操作。本文将介绍如何使用CodeIgniter框架创建RESTful API,并通过一个案例代码来演示。

首先,我们需要安装和配置CodeIgniter框架。可以从官方网站上下载最新版本的CodeIgniter,并将其解压到Web服务器的根目录下。然后,我们需要配置数据库连接信息,可以在application/config/database.php文件中进行配置。

接下来,我们需要创建一个控制器来处理API的请求。在CodeIgniter中,控制器是处理请求的核心部分。我们可以通过创建一个名为Api.php的控制器来处理API的请求。在该控制器中,我们可以定义各种方法来处理不同的API请求。

下面是一个简单的例子,演示如何处理GET请求,获取用户信息的API。

php

defined('BASEPATH') OR exit('No direct script access allowed');

require APPPATH . '/libraries/REST_Controller.php';

class Api extends REST_Controller {

public function __construct() {

parent::__construct();

$this->load->database();

}

public function user_get($id = 0) {

if (!empty($id)) {

$data = $this->db->get_where("users", ['id' => $id])->row_array();

} else {

$data = $this->db->get("users")->result();

}

$this->response($data, REST_Controller::HTTP_OK);

}

}

在上面的代码中,我们继承了CodeIgniter的REST_Controller类,并在构造函数中加载了数据库库。然后,我们定义了一个名为user_get的方法来处理GET请求,并根据传递的参数来获取用户信息。如果传递了id参数,则返回指定用户的信息;否则,返回所有用户的信息。

现在我们已经创建了一个简单的RESTful API,可以使用GET请求来获取用户信息。可以通过访问http://your_domain/api/user来获取所有用户的信息,或者访问http://your_domain/api/user/id来获取指定用户的信息。

处理POST请求

除了处理GET请求之外,我们还可以处理POST请求,用于创建新的资源。下面是一个处理POST请求的例子,演示如何创建新用户的API。

php

public function user_post() {

$input = $this->input->post();

$this->db->insert('users', $input);

$this->response(['User created successfully.'], REST_Controller::HTTP_OK);

}

在上面的代码中,我们定义了一个名为user_post的方法来处理POST请求。首先,我们通过$this->input->post()方法获取到POST请求中的数据,并将其插入到数据库中。然后,我们返回一个成功的响应。

处理PUT请求

除了处理GET和POST请求之外,我们还可以处理PUT请求,用于更新已有资源的信息。下面是一个处理PUT请求的例子,演示如何更新用户信息的API。

php

public function user_put($id) {

$input = $this->put();

$this->db->update('users', $input, array('id'=>$id));

$this->response(['User updated successfully.'], REST_Controller::HTTP_OK);

}

在上面的代码中,我们定义了一个名为user_put的方法来处理PUT请求。首先,我们通过$this->put()方法获取到PUT请求中的数据,并将其更新到数据库中。然后,我们返回一个成功的响应。

处理DELETE请求

最后,我们还可以处理DELETE请求,用于删除已有资源。下面是一个处理DELETE请求的例子,演示如何删除用户的API。

php

public function user_delete($id) {

$this->db->delete('users', array('id'=>$id));

$this->response(['User deleted successfully.'], REST_Controller::HTTP_OK);

}

在上面的代码中,我们定义了一个名为user_delete的方法来处理DELETE请求。首先,我们通过$this->db->delete()方法从数据库中删除指定id的用户信息。然后,我们返回一个成功的响应。

通过以上的案例代码,我们可以看到使用CodeIgniter框架创建RESTful API是非常方便的。我们可以根据不同的HTTP方法(GET、POST、PUT、DELETE)来处理不同的请求,并实现数据的增删改查操作。在实际开发中,我们可以根据具体需求来定义更多的API方法,以满足不同的业务需求。