Codeigniter RESTful API - 如何正确使用它

时间:2014-03-08 20:57:07

标签: php codeigniter rest

我有一个应用程序,我使用Codeigniter作为后端,BackboneJS作为前端 所以我安装了Phil Sturgeon的RESTful服务器,这样我就可以将我的后端数据作为API传递给我的前端。

到目前为止,只有当我有一个小LIMIT 0,50语句时,它才能正常运行 当我删除LIMIT数据量很高而GET方法截断LIMIT以上的数据时,我通常必须使用POST方法。
所以我想知道我使用它的方式是正确还是错误 在文档中,我在api中创建了一个application/controllers/api文件夹。

所以我的一个API看起来像这样:

<?php

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

class artistchannel extends REST_Controller{


    public function artistname_get($artist_id)  
    { 
          $this->load->database();
          $sql = "SELECT formated_name FROM artists WHERE artist_id = '".$artist_id."'";
          $query = $this->db->query($sql);
          $data = $query->result();

          if($data) {
            $this->response($data, 200); // 
          } else {
            $this->response(array('error' => 'Couldn\'t find any artist with that name!'), 404);
          }
    }
}

?>

这是一种正确的使用方法吗?我觉得有些不对劲。

提前致谢

1 个答案:

答案 0 :(得分:0)

我建议您不要使用Phil Sturgeon的RESTful服务器来查看具有更广泛功能的Guzzle

不是从控制器对数据库进行简单查询,而是使用模型和Active Record:

Controller

public function artistname_get($artist_id)  
{
   $data = $this->ArtistModel->get($artist_id);
   if($data) {
     $this->response($data, 200); // 
   } else {
     $this->response(array('error' => 'Couldn\'t find any artist with that name!'), 404);
   }
} 

然后使用Codeigniter ActiveRecordArtistModel中执行查询。 在ArtistModel

public function get($id) 
{
  return $this->db->get_where('artists', array('artist_id' => $id))->row(); 
}