javascript - BackboneJS + Codeigniter - RESTful API - 如何创建一个大 API?

标签 javascript php codeigniter rest backbone.js

我有一个使用 Codeigniter 作为后端的 Backbone 应用程序。现在,为了显示数据库中的数据,我使用 RESTful API 来获取数据并将其作为 JSON 传递到 Backbone。我想要获取的数据是从 A-Z 的乐队名称,并且它始终是相同的数据:band_id 和 band_name。因此,为了这个目的,我想创建一个单一的 Backbone 模型,它应该告诉集合要处理哪些数据。因此,在我的 Codeigniter 设置中,在 application-folder->controllers-folder 中,我创建了一个 api-folder,在其中创建了一个 artist.php-文件,基本上如下所示:

<?php

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

class artists extends REST_Controller{

// BANDS WITH LETTER A
public function a_get()  
{ 
 $this->load->database();
 $sql = "SELECT band_id, band_name FROM `bands` WHERE bands_name LIKE 'A%' LIMIT 100";
 $query = $this->db->query($sql);
 $data = $query->result();

 if($data) {
    $this->response($data, 200);
 } else {
    $this->response(array('error' => 'Couldn\'t find any artists with letter a!'), 404);
 }
}  

public function a_put()  
{  
// Update
}  

public function a_post()  
{  
// Post/insert
}  

public function a_delete()  
{  
// delete
}

// BANDS WITH LETTER B
public function b_get()  
{ 
 $this->load->database();
 $sql = "SELECT band_id, band_name FROM `bands` WHERE band_name LIKE 'B%' LIMIT 10";
 $query = $this->db->query($sql);
 $data = $query->result();

 if($data) {
    $this->response($data, 200);
 } else {
    $this->response(array('error' => 'Couldn\'t find any artists with letter b!'), 404);
 }
}  

public function b_put()  
{  
// Update
}  

public function b_post()  
{  
// Post/insert
}  

public function b_delete()  
{  
// delete
}
... LETTER C code
... LETTED D code etc. etc.
?>

我的 Backbone 模型看起来像这样:

function($, Backbone) {
var BandModel = Backbone.Model.extend({
    url: "../myproejct/index.php/api/bands/",

    defaults: {
        "band_id": ' ',
        "band_name": ' '
    }
});

return BandModel;
});

集合看起来像这样:

function(Backbone, BandModel) {
var BandCollectionA = Backbone.Collection.extend({
    model: BandModel,
    url: "../myproject/index.php/api/bands/a"
});

return BandCollectionA;
});

所以我的问题是:我可以这样做吗?我可以像那样使用 API,artists.php 吗?有替代方案吗?

最佳答案

CodeIgniter 支持 Controller 中的子文件夹,因此您可以像您所描述的那样组织它们。

否则,您可以考虑使用 CodeIgnter 的 HMVC。这是HMVC替代方案,但您可以在网上找到其他方案。

如果您遇到问题并想要 CodeIgniter 中 REST 服务的良好教程,请点击以下链接:Tuts

关于javascript - BackboneJS + Codeigniter - RESTful API - 如何创建一个大 API?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21445092/

相关文章:

php - 如何将数据库表中的 SQL 数据回显到 <select> 表单中?

php - 将数组从 Controller 传递到模型 CodeIgniter

php - 外部 css 已加载但未应用于 html - php codeigniter ssl - 如何将 css mime type = text/html 更改为 text/css

javascript - Controller 中的设置值有效,但 Angular 表达式中的设置值不起作用?

javascript - HTML 元素 : How can I simulate pressing the 'tab' key

javascript - 传递给函数的数组不会发生变化?

php - 无法将移动设备连接到本地 MySQL 数据库,但可以使用模拟器工作

javascript - D3圆包图中的图例

javascript - 将表单数据发布到重定向页面

php - Codeigniter 多数据库连接中遇到错误