CodeIgniter Rest Server 学习笔记

CodeIgniter Rest Server 学习笔记

什么是CodeIgniter Rest Server?

利用一个库文件、一个配置文件以及一个控制器就可以实现完整的CodeIgniter开发RESTful架构API的一个工具。

Installation

只需要向CodeIgniter文件夹中的composer.json文件添加一下代码:

"chriskacerguis/codeigniter-restserver": "^3.0"

然后运行一下命令安装依赖包:

composer install

Handling Requests

当你的控制器继承REST_Controller 的时候,这个控制器中的方法名之后应该跟着HTTP请求动词,例如:

require 'application/vendor/autoload.php';
class Books extends REST_Controller
{
  public function index_get()
  {
    // Display all books
  }

  public function index_post()
  {
    // Create a new book
  }
}

对于PUTGETPOSTHTTP请求动词,可以通过以下方法来获取参数

$this->get('blah'); // GET param
$this->post('blah'); // POST param
$this->put('blah'); // PUT param

而对于DELETE请求,则只能通过在方法中添加参数,然后通过URL传入参数,来进行访问:

public function index_delete($id)
{
    $this->response([
        'returned from delete:' => $id,
    ]);
}

无论请求是否为GET请求,只要是通过URL传入的参数,都可以通过以下方法获取参数:

$this->query('blah'); // Query param

Responses

可以通过类提供的response()方法来返回任意数据:

public function index_get()
{
  $this->response($this->db->get('books')->result());
}

若成功返回,那么它将会自动带上一个HTTP 200 OK 状态码,你也可以通过response() 方法的第二个参数来自定义返回的状态码:

public function index_post()
  {
    // ...create new book
    $this->response($book, 201); // Send an HTTP 201 Created
  }

如果你没有设置一个自定义的状态码,并且返回的数据出错了(空数组或者是空串),那么状态码将会被自动设置为404 Not Found

$this->response([]); // HTTP 404 Not Found
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,969评论 19 139
  • 一说到REST,我想大家的第一反应就是“啊,就是那种前后台通信方式。”但是在要求详细讲述它所提出的各个约束,以及如...
    时待吾阅读 3,467评论 0 19
  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 11,172评论 6 13
  • 成功的大门都是虚掩的,不过,虚掩着的大门不会自动打开请你入内,而是要靠你的双手用力才能把它推开。 ...
    洁思漫讲阅读 343评论 0 1
  • Firefox xthunder 扩展无法调用绿色版迅雷解决? 标签(空格分隔): Firefox 在使用绿色版本...
    lumicinta阅读 1,100评论 0 0